Module: Goldmine::HashMiner

Defined in:
lib/goldmine.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#goldmineObject

Returns the value of attribute goldmine.



26
27
28
# File 'lib/goldmine.rb', line 26

def goldmine
  @goldmine
end

Instance Method Details

#assign_mined(name, key, value) ⇒ Object



47
48
49
50
51
# File 'lib/goldmine.rb', line 47

def assign_mined(name, key, value)
  mine_key = goldmine_key(name, key)
  self[mine_key] ||= []
  self[goldmine_key(name, key)] << value
end

#dig(name = nil, &block) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/goldmine.rb', line 27

def dig(name=nil, &block)
  return self unless goldmine
  reduce({}) do |memo, item|
    key = item.first
    value = item.last
    value.dig(name, &block).each do |k, v|
      new_key = []
      if key.is_a? Array
        new_key = new_key + key
      else
        new_key << key
      end
      new_key << k
      memo[new_key] = v
    end
    memo.goldmine = true
    memo
  end
end

#goldmine_key(name, key) ⇒ Object



53
54
55
56
# File 'lib/goldmine.rb', line 53

def goldmine_key(name, key)
  mine_key = "#{name}: #{key}" if name
  mine_key ||= key
end