module Deeply

Public Instance Methods

deeply_dup() click to toggle source
# File lib/app/config/deeply.rb, line 166
def deeply_dup
  self.each_with_object({}) do |(key, obj), hash|
    case  obj
    when  NilClass
      hash[key]  =  nil
    when  Array, Hash
      hash[key]  =  obj.deeply_dup
    else
      hash[key]  =  obj.dup
    end
  end
end
deeply_map( &block ) click to toggle source
# File lib/app/config/deeply.rb, line 121
def deeply_map( &block )
  temp  =  self.deeply_dup
  temp.deeply_map!( &block )
  temp
end
deeply_map!( &block ) click to toggle source
# File lib/app/config/deeply.rb, line 127
def deeply_map!( &block )
  self.each do |key, obj|
    case  obj
    when  NilClass
      self[key]  =  nil
    when  Array, Hash
      self[key].deeply_map!( &block )
    else
      self[key]  =  block.call( obj )
    end
  end
end
deeply_merge( hash ) click to toggle source
# File lib/app/config/deeply.rb, line 92
def deeply_merge( hash )
  raise  ArgumentError( "type invalid. : %s" % hash )    unless  hash.is_a? Hash

  temp  =  self.deeply_dup
  temp.deeply_merge!( hash )
  temp
end
deeply_merge!( hash ) click to toggle source
# File lib/app/config/deeply.rb, line 100
def deeply_merge!( hash )
  raise  ArgumentError( "type invalid. : %s" % hash )    unless  hash.is_a? Hash

  hash.each do |key, obj|
    case  obj
    when  NilClass
      self[key]  =  nil
    when  Hash
      self[key]  =  {}    if self[key].nil?
      self[key].deeply_merge!(obj)
    else
      self[key]  =  obj.dup
    end
  end
end
deeply_stringify_keys() click to toggle source
# File lib/app/config/deeply.rb, line 56
def deeply_stringify_keys
  self.each_with_object({}) do |(key, obj), hash|
    k  =  key.to_s
    case  obj
    when  Array, Hash
      hash[k]  =  obj.deeply_stringify_keys
    else
      hash[k]  =  obj
    end
  end
end
deeply_stringify_keys!() click to toggle source
# File lib/app/config/deeply.rb, line 50
def deeply_stringify_keys!
  temp  =  self.deeply_stringify_keys
  self.clear
  self.merge!( temp )
end
deeply_symbolize_keys() click to toggle source
# File lib/app/config/deeply.rb, line 14
def deeply_symbolize_keys
  self.each_with_object({}) do |(key, obj), hash|
    k  =  key.to_s.to_sym
    case  obj
    when  Array, Hash
      hash[k]  =  obj.deeply_symbolize_keys
    else
      hash[k]  =  obj
    end
  end
end
deeply_symbolize_keys!() click to toggle source
# File lib/app/config/deeply.rb, line 8
def deeply_symbolize_keys!
  temp  =  self.deeply_symbolize_keys
  self.clear
  self.merge!( temp )
end