class DeepCount::Adapter

Attributes

input[R]
output[R]

Public Class Methods

new(input) click to toggle source
# File lib/deep_count/adapter.rb, line 5
def initialize(input)
  @input = input
  @output = {}
end

Public Instance Methods

add_to(object, array, value) click to toggle source
# File lib/deep_count/adapter.rb, line 23
def add_to(object, array, value)
  key = array.shift
  if array.any?
    add_to object[key] ||= {}, array, value
  else
    object[key] = value
  end
end
call() click to toggle source
# File lib/deep_count/adapter.rb, line 10
def call
  if input.is_a?(Hash) && input.keys.first.is_a?(Array)
    prepare_output
    output
  else
    input
  end
end
prepare_output() click to toggle source
# File lib/deep_count/adapter.rb, line 19
def prepare_output
  input.each { |arr, value| add_to output, arr, value }
end