| In: |
ostruct.rb
|
| Parent: | Object |
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>
Create a new OpenStruct object. The optional hash, if given, will generate attributes and values. For example.
require 'ostruct'
hash = { "country" => "Australia", :population => 20_000_000 }
data = OpenStruct.new(hash)
p data # -> <OpenStruct country="Australia" population=20000000>
By default, the resulting OpenStruct object will have no attributes.
# File ostruct.rb, line 46 def initialize(hash=nil) @table = {} if hash for k,v in hash @table[k.to_sym] = v end end end
Compare this object and other for equality.
# File ostruct.rb, line 98 def ==(other) return false unless(other.kind_of?(OpenStruct)) return @table == other.table end