Sha256: db4ac6b1308ee4d9a0b4208cd60db7721d4902e3b10a8b82bc635958d65629e4
Contents?: true
Size: 884 Bytes
Versions: 2
Compression:
Stored size: 884 Bytes
Contents
# Similar to Ruby's OpenStruct but uses hash as its parent class providing # all of the typical Hash methods. Useful for storing settings on objects. module BBLib class HashStruct < Hash protected def method_missing(method, *args, &block) if args.empty? && ![:to_ary].include?(method) if method.to_s.end_with?('?') define_singleton_method(method) do self[method[0..-2].to_sym] ? true : false end send(method) else define_singleton_method(method) do self[method] end self[method] end elsif method.to_s.end_with?('=') define_singleton_method(method) do |arg| self[method[0..-2].to_sym] = arg end self[method[0..-2].to_sym] = args.first else super end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bblib-2.0.1 | lib/bblib/core/classes/hash_struct.rb |
bblib-2.0.0 | lib/bblib/core/classes/hash_struct.rb |