class OpenStruct
def [](name)
def [](name) @table[name.to_sym] end unless method_defined? :[]
def []=(name, value)
def []=(name, value) modifiable[new_ostruct_member(name)] = value end unless method_defined? :[]=
def each_pair
def each_pair return to_enum(:each_pair) unless block_given? @table.each_pair{|p| yield p} end unless method_defined? :each_pair
def eql?(other)
def eql?(other) return false unless other.kind_of?(OpenStruct) @table.eql?(other.table) end unless method_defined? :eql?
def hash
def hash @table.hash end unless method_defined? :hash
def to_h
def to_h @table.dup end unless method_defined? :to_h