module Dotloop::ParseData

Public Instance Methods

parse_data(data) click to toggle source
# File lib/dotloop/parse_data.rb, line 5
def parse_data(data)
  fix_hash_keys(data).each { |item| build_section(item[0], item[1]) }
end

Private Instance Methods

build_section(key, section_data) click to toggle source
# File lib/dotloop/parse_data.rb, line 11
def build_section(key, section_data)
  return unless fields.include?(key)
  values = fix_hash_keys(section_data)
  @details[key] = values
end
fix_hash_keys(bad_hash) click to toggle source
# File lib/dotloop/parse_data.rb, line 21
def fix_hash_keys(bad_hash)
  bad_hash.each_with_object({}) do |item, memo|
    memo[index_to_key(item[0])] = item[1]
  end
end
index_to_key(index) click to toggle source
# File lib/dotloop/parse_data.rb, line 17
def index_to_key(index)
  index.to_s.downcase.delete(%(')).gsub(/%/, ' percent ').gsub(/\$/, ' doller ').gsub(/[^a-z]/, '_').squeeze('_').gsub(/^_*/, '').gsub(/_*$/, '').to_sym
end