class
OpenStruct allows you to create data objects and set arbitrary attributes. For example:
require 'ostruct' record = OpenStruct.new record.name = "John Smith" record.age = 70 record.pension = 300 puts record.name # -> "John Smith" puts record.address # -> nil
It is like a hash with a different way to access the data. In fact, it is implemented with a hash, and you can initialize it with one.
hash = { "country" => "Australia", :population => 20_000_000 } data = OpenStruct.new(hash) p data # -> <OpenStruct country="Australia" population=20000000>
Constants
InspectKey = :__inspect_key__
Attributes
[R] | table |
Register or
log in
to add new notes.
tadman -
May 19, 2009
2 thanks
Like JavaScript Object
For those familiar with JavaScript naked Objects, this is very similar.
matthias -
July 17, 2009
0 thanks
Like Groovy Expando
If you’re coming from Groovy/Grails: this is called an Expando in Groovy.