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