class HashObject
Public Class Methods
new(hash = {})
click to toggle source
# File lib/wedge/utilis/hash.rb, line 83 def initialize(hash = {}) hash.each do |k,v| if v.kind_of? Hash self.instance_variable_set("@#{k}", HashObject.new(v)) end self.instance_variable_set("@#{k}", v) self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")}) self.class.send(:define_method, "#{k}=", proc{|vv| self.instance_variable_set("@#{k}", vv)}) end end
Public Instance Methods
dup()
click to toggle source
# File lib/wedge/utilis/hash.rb, line 104 def dup Wedge::IndifferentHash.new self.to_h.inject({}) {|copy, (key, value)| copy[key] = value.dup rescue value; copy} end
to_h()
click to toggle source
# File lib/wedge/utilis/hash.rb, line 95 def to_h hash_to_return = Wedge::IndifferentHash.new self.instance_variables.each do |var| value = self.instance_variable_get(var) hash_to_return[var.to_s.gsub("@","")] = value.is_a?(HashObject) ? value.to_h : value end return hash_to_return end