Sha256: ed054d905be77ed5ac0af8fdf308adb88fec68186f41917fdd66b9ee77c66d75

Contents?: true

Size: 959 Bytes

Versions: 2

Compression:

Stored size: 959 Bytes

Contents

require 'active_record'
require 'active_record/version'

require 'active_support/core_ext'

require File.join(File.dirname(__FILE__), 'death_and_taxes', 'railtie')

module DeathAndTaxes
  %w( Country State Tax Taxable Taxation Taxer TaxInfo TaxVersion ).each do |class_name|
    autoload class_name.to_sym, File.join(File.dirname(__FILE__), "death_and_taxes/#{class_name.underscore}")
  end
  
  Dir[File.join(File.dirname(__FILE__), '..', 'config', '*.yml')].each do |filename|
    country_code = filename.match(/\W(?<country_code>[a-z]+)\.yml/)[:country_code]
    @countries = {}
    @countries[country_code] = Country.new( country_code,  YAML::load_file(filename) )
  end
  
  def self.applicable_taxes from, to, date = nil
    date ||= Date.today
    @countries.map{ |code, country| country.applicable_taxes(from, to, date)}.flatten.compact
  end
  
  def self.build tax, date
    @countries.detect {|code, country| country.build_tax(tax, date)}
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
death_and_taxes-0.0.3 lib/death_and_taxes.rb
death_and_taxes-0.0.2 lib/death_and_taxes.rb