class LittleFinger::Parsers::TaxSalesFile
Constants
- CITY_IDX
- COMBINED_RATE_IDX
- EFFECTIVE_DATE_IDX
- STATE_IDX
- STATE_NAME_IDX
- ZIP_CODE_IDX
Public Instance Methods
parse(tax_file)
click to toggle source
# File lib/little_finger/parsers/tax_sales_file.rb, line 10 def parse(tax_file) tax_data = {} File.open(tax_file,"r").each_line do |line| data = line.split(",") zip_code = data[ZIP_CODE_IDX] effective_date = data[EFFECTIVE_DATE_IDX] rate = data[COMBINED_RATE_IDX] state = data[STATE_IDX] city = data[CITY_IDX] description = "#{city}, #{state}" entry = [zip_code,effective_date, rate, description, state, city] raise StandardError.new("Avatax file format is incorrect: #{entry}") if entry.any?{|elem| elem.nil?} key = (zip_code + city).strip effective_date = "2015/01/01" if effective_date == "0000/00/00" tax_data[key] = { zip: zip_code, city: city, state: state, tax_rate: BigDecimal.new(rate), effective_at: DateTime.strptime(effective_date, "%Y/%m/%d") } end tax_data end