Class: RedMatryoshka::Doll

Inherits:
Object
  • Object
show all
Defined in:
lib/red_matryoshka/doll.rb

Constant Summary collapse

KEY_SEPARATOR =
":".freeze

Instance Method Summary collapse

Constructor Details

#initialize(hash, cache_klass = nil) ⇒ Doll

Returns a new instance of Doll.



5
6
7
8
# File 'lib/red_matryoshka/doll.rb', line 5

def initialize(hash, cache_klass = nil)
  @hash = hash
  @cache_klass = cache_klass
end

Instance Method Details

#expandObject



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/red_matryoshka/doll.rb', line 10

def expand
  @hash.inject({}) do |hash, (k, v)|
    row = expand_row k, v

    if array_with_hashes?(row)
      array_deep_merge hash, row
    else
      hash.deep_merge row
    end
  end
end

#flattenObject



22
23
24
# File 'lib/red_matryoshka/doll.rb', line 22

def flatten
  @hash.inject({}) { |flatten_hash, (k, v)| flatten_hash.merge flatten_row([], k, v) }
end