0.0
The project is in a healthy, maintained state
screwed a cookie to the tabel
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 0

Runtime

 Project Readme

Norairrecord

airrecord : norairrecord :: epinephrine : norepinephrine

stuff not in the OG:

  • Table#comment
    • rec.comment "pretty cool record!"
  • Table#patch!
    • rec.patch({ # this will fire off a request 
        "field 1" => "new value 1", # that only modifies
        "field 2" => "new value 2", # the specified fields
      })
  • """""transactions"""""!
    • they're not great but they kinda do a thing!
    • rec.transaction do |rec| # pipes optional
        # do some stuff to rec...
        # all changes inside the block happen in 1 request
        # none of the changes happen if an error is hit
      end
  • custom endpoint URL
    • handy for inspecting/ratelimiting
    • Norairrecord.base_url = "https://somewhere_else"
    • or ENV['AIRTABLE_ENDPOINT_URL']
  • custom UA
    • Norairrecord.user_agent = "i'm the reason why you're getting 429s!"
  • Table#airtable_url
    • what it says on the tin!
  • Table.has_subtypes
    • hokay so:
    • class Friend < Norairrecord::Table
        # base_key/table_name, etc...
        has_subtypes "type", { # based on 'type' column...
          "person" => "Person", # when 'person' instantiate record as Person 
          "shark" => "Shark"
        }, strict: true # if strict, unmapped types will raise UnknownTypeError
        # otherwise they will be instantiated as the base class
      end
      
      class Person < Friend; end
      class Shark < Friend; end
      
      Friend.all
      => [<Person>, <Person>, <Shark>]
  • Norairrecord::RecordNotFoundError
    • never again wonder if an error is because you goofed up an ID or you're getting ratelimited
  • where argument on has_many lookups
  • Table#first, Table#first_where
  • you're not gonna believe it:
    • Table.batch_{update,upsert,create,save}
    • makes ratelimits much less painful
  • Util (those little methods we have to keep writing again and again, now in one place)
  • custom RPS limit
    • Norairrecord.rps_limit = 3