Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
58 lines (35 sloc) 1.49 KB

Storable - v0.7

Marshal Ruby classes into and out of multiple formats (yaml, json, csv, tsv)


require 'storable'

class Machine < Storable
  field :environment            # Define field names for Machine. The
  field :role                   # default type is String, but you can
  field :position => Integer    # specify a type using a hash syntax.

mac1 =              # Instances of Machine have accessors
mac1.environment = "stage"      # just like regular attributes. 
mac1.role = "app"
mac1.position = 1

puts "# YAML", mac1.to_yaml     # Note: the field order is maintained     
puts "# CSV", mac1.to_csv       # => stage,app,1
puts "# JSON", mac1.to_json     # Note: field order not maintained.

mac2 = Machine.from_yaml(mac1.to_yaml)
puts mac2.environment           # => "stage"
puts mac2.position.class        # => Fixnum


Via Rubygems, one of:

$ sudo gem install storable
$ sudo gem install delano-storable --source

or via download:


  • Ruby 1.8, Ruby 1.9, or JRuby 1.2


  • Pierre Riteau (priteau) for bug fixes.


  • Delano Mandelbaum (

  • OrderedHash implementation by Jan Molic


See: LICENSE.txt

Jump to Line
Something went wrong with that request. Please try again.