Module: Amazon::Util::HashNesting

Defined in:
lib/amazon/util/hash_nesting.rb

Instance Method Summary collapse

Instance Method Details

#nestObject



9
10
11
12
13
# File 'lib/amazon/util/hash_nesting.rb', line 9

def nest
  result = {}.extend HashNesting
  primaryKeys.each { |key| traverse_nest( "#{key}", self[key] ) { |k,v| result[k] = v } }
  result
end

#nest!Object



15
16
17
18
19
20
21
# File 'lib/amazon/util/hash_nesting.rb', line 15

def nest!
  keys = primaryKeys
  tmp = self.dup
  self.keys.each { |k| self.delete k}
  keys.each { |key| traverse_nest( "#{key}", tmp[key] ) { |k,v| self[k] = v} }
  self
end

#unnestObject



23
24
25
26
27
28
29
30
# File 'lib/amazon/util/hash_nesting.rb', line 23

def unnest
  result = {}.extend HashNesting
  for key in primaryKeys
    true_keys = key.to_s.split('.')
    resolve_nesting( result, self[key], *true_keys)
  end
  result
end

#unnest!Object



32
33
34
35
36
37
38
39
40
# File 'lib/amazon/util/hash_nesting.rb', line 32

def unnest!
  for key in primaryKeys
    true_keys = key.to_s.split('.')
    value = self[key]
    self.delete key
    resolve_nesting( self, value, *true_keys)
  end
  self
end