Class: Goldmine::ArrayMiner
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Goldmine::ArrayMiner
- Defined in:
- lib/goldmine/array_miner.rb
Instance Method Summary collapse
-
#initialize(array = []) ⇒ ArrayMiner
constructor
A new instance of ArrayMiner.
-
#pivot(name = nil) {|Object| ... } ⇒ Hash
Pivots the Array into a Hash of mined data.
Constructor Details
#initialize(array = []) ⇒ ArrayMiner
Returns a new instance of ArrayMiner.
6 7 8 |
# File 'lib/goldmine/array_miner.rb', line 6 def initialize(array=[]) super array end |
Instance Method Details
#pivot(name = nil) {|Object| ... } ⇒ Hash
Pivots the Array into a Hash of mined data. Think of it as creating a pivot table or perhaps an OLAP cube.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/goldmine/array_miner.rb', line 48 def pivot(name=nil, &block) reduce(HashMiner.new) do |memo, item| value = yield(item) if value.is_a?(Array) if value.empty? memo.assign_mined(name, nil, item) else value.each { |v| memo.assign_mined(name, v, item) } end else memo.assign_mined(name, value, item) end memo.goldmine = true memo end end |