Sha256: 1cb2a680af26164af508a5498624faed5266b8679edf0f326dd3c8a92d4619ae
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
class CleanHash class Indifferent def initialize data @data = data end # for debug def to_json JSON.pretty_generate @data end # for puts def to_ary [@data] end def key? name @data.key?(name.to_sym) || @data.key?(name.to_s) end def keys @data.keys end def values @data.values end def to_h @data end def to_json *args @data.to_json *args end def [] key data = @data[key.to_sym] data = @data[key.to_s] if data.nil? if data.is_a?(Hash) self.class.new data else data end end def []= key, value key = key.to_sym unless key.class == Symbol @data.delete(key.to_s) @data[key] = value end def method_missing name, *args, &block m = name.to_s if m.end_with?('=') m = m.sub('=', '') self[m] = args.first elsif m.end_with?('?') begin !self[m.sub('?', '')].nil? rescue NoMethodError false end elsif block self[m] = block else self[m] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
clean-hash-0.5.2 | ./lib/clean-hash/types/indifferent_type.rb |
clean-hash-0.5.1 | ./lib/clean-hash/types/indifferent_type.rb |
clean-hash-0.5.0 | ./lib/clean-hash/types/indifferent_type.rb |