class Uncomtrade::Helpers::Iterator

Attributes

array[R]

Public Class Methods

new(array) click to toggle source
# File lib/uncomtrade/helpers/iterator.rb, line 6
def initialize(array)
  @array = array
end

Public Instance Methods

cherry_pick(selectors) click to toggle source
# File lib/uncomtrade/helpers/iterator.rb, line 10
def cherry_pick(selectors)
  if !selectors.empty?
    selectors = syms_to_strings(selectors)
    array.map do |data|
      hash = create_hash(data, selectors)
    end
  else
    array
  end
end
to_csv(csv_path, selectors) click to toggle source
# File lib/uncomtrade/helpers/iterator.rb, line 21
def to_csv(csv_path, selectors)
  CSV.open(csv_path, "wb") do |csv|
    picked_array = cherry_pick(selectors)
    csv << picked_array.first.keys
    picked_array.each do |hash|
      csv << hash.values
    end
  end
end

Private Instance Methods

create_hash(data, selectors) click to toggle source
# File lib/uncomtrade/helpers/iterator.rb, line 41
def create_hash(data, selectors)
  selectors.inject({}) do |memo, selector|
    memo.merge({selector.last => data[selector.first]})
  end
end
syms_to_strings(selectors) click to toggle source
# File lib/uncomtrade/helpers/iterator.rb, line 35
def syms_to_strings(selectors)
  selectors.map do |key, value|
    [key.to_s, value]
  end.to_h
end