OmniStruct -
Helpers for using OpenStruct and/or Struct over Hash
Usage
Require after or in place of classy_struct
, ostruct
and/or struct
.
# good
require 'omnistruct`
# also good
require 'ostruct`
require 'omnistruct`
# bad
require 'omnistruct`
require 'ostruct`
TODO: document the following better
Add's the following methods to Hash
;
# Hash
##
# class methods
Hash.struct_type
Hash.struct_type=
# instance methods
Hash.new.to_struct(type=Hash.struct_type)
Add's the following common Hash
methods to struct types;
# All: ClassyStruct / OpenStruct / Struct
##
struct = <struct type>.to_struct( [type] )
merged = <struct type>.merge( Hash.new | <struct type> )
json = <struct type>.to_json
value = <struct type>.delete(:key)
# ClassyStruct
locked = <classy struct>.lock
locked.class
# => "Struct"
# OpenStruct
OpenStruct.new.merge!( Hash.new | <struct type> )
locked = OpenStruct.new.lock
locked.class
# => "Struct"
# Struct
unlocked = <Struct>.unlock( [type] )
Development
bundle install --path .bundle
bundle exec ruby ./test.rb