Class: Hash

Inherits:
Object
  • Object
show all
Defined in:
lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb,
lib/app/config/deeply.rb

Overview

deeply_dup

Instance Method Summary collapse

Instance Method Details

#deeply_dupObject



163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/app/config/deeply.rb', line 163

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) ⇒ Object



118
119
120
121
122
# File 'lib/app/config/deeply.rb', line 118

def deeply_map( &block )
  temp  =  self.deeply_dup
  temp.deeply_map!( &block )
  temp
end

#deeply_map!(&block) ⇒ Object



124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/app/config/deeply.rb', line 124

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) ⇒ Object



89
90
91
92
93
94
95
# File 'lib/app/config/deeply.rb', line 89

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) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/app/config/deeply.rb', line 97

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_keysObject



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/app/config/deeply.rb', line 53

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!Object



47
48
49
50
51
# File 'lib/app/config/deeply.rb', line 47

def deeply_stringify_keys!
  temp  =  self.deeply_stringify_keys
  self.clear
  self.merge!( temp )
end

#deeply_symbolize_keysObject



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/app/config/deeply.rb', line 11

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!Object



5
6
7
8
9
# File 'lib/app/config/deeply.rb', line 5

def deeply_symbolize_keys!
  temp  =  self.deeply_symbolize_keys
  self.clear
  self.merge!( temp )
end