Module: Goldmine::HashMiner
- Defined in:
- lib/goldmine.rb
Instance Attribute Summary collapse
-
#goldmine ⇒ Object
Returns the value of attribute goldmine.
Instance Method Summary collapse
- #assign_mined(name, key, value) ⇒ Object
- #dig(name = nil, &block) ⇒ Object
- #goldmine_key(name, key) ⇒ Object
Instance Attribute Details
#goldmine ⇒ Object
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 |