record - named tuples / records with typed structs / schemas
- home :: github.com/rubycoco/record
- bugs :: github.com/rubycoco/record/issues
- gem :: rubygems.org/gems/record
- rdoc :: rubydoc.info/gems/record
- forum :: wwwmake
Usage
Step 1: Define a (typed) struct for your records / named tuples. Example:
require 'record'
Beer = Record.define do
field :brewery ## note: default type is :string
field :city
field :name
field :abv, Float ## allows type specified as class (or use :float)
end
or in "classic" style:
class Beer < Record::Base
field :brewery
field :city
field :name
field :abv, Float
end
Step 2: Use the new class to create new (typed) records. Example:
beer = Beer.new( 'Andechser Klosterbrauerei',
'Andechs',
'Doppelbock Dunkel',
'7%' )
# -or-
values = ['Andechser Klosterbrauerei', 'Andechs', 'Doppelbock Dunkel', '7%']
beer = Beer.new( values )
# -or-
beer = Beer.new( brewery: 'Andechser Klosterbrauerei',
city: 'Andechs',
name: 'Doppelbock Dunkel',
abv: '7%' )
# -or-
hash = { brewery: 'Andechser Klosterbrauerei',
city: 'Andechs',
name: 'Doppelbock Dunkel',
abv: '7%' }
beer = Beer.new( hash )
# -or-
beer = Beer.new
beer.update( brewery: 'Andechser Klosterbrauerei',
city: 'Andechs',
name: 'Doppelbock Dunkel' )
beer.update( abv: 7.0 )
# -or-
beer = Beer.new
beer.parse( ['Andechser Klosterbrauerei', 'Andechs', 'Doppelbock Dunkel', '7%'] )
# -or-
beer = Beer.new
beer.parse( 'Andechser Klosterbrauerei,Andechs,Doppelbock Dunkel,7%' )
# -or-
beer = Beer.new
beer.brewery = 'Andechser Klosterbrauerei'
beer.name = 'Doppelbock Dunkel'
beer.abv = 7.0
And so on. That's it.
License
The record
scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.
Questions? Comments?
Send them along to the wwwmake forum. Thanks!