lib/train/tax/calculator/sss.rb in train-tax-calculator-2.3.2 vs lib/train/tax/calculator/sss.rb in train-tax-calculator-3.0.0

- old
+ new

@@ -33,10 +33,32 @@ 1_750.00 => { er: 157.30, ee: 72.70 }, 1_250.00 => { er: 120.50, ee: 54.50 }, 1_000.00 => { er: 83.70, ee: 36.30 }, } + def self.call(salary) + { + employee_share: employee_share(salary), + employer_share: employer_share(salary), + total_share: total_share(salary), + } + end + + private + + def self.employer_share(salary) + compute(salary)[:er] + end + + def self.employee_share(salary) + compute(salary)[:ee] + end + + def self.total_share(salary) + employer_share(salary) + employee_share(salary) + end + def self.compute(salary) result = 0.00 TABLE.each do |base, data| if salary >= base @@ -44,21 +66,9 @@ break end end result - end - - def self.compute_employer_share(salary) - compute(salary)[:er] - end - - def self.compute_employee_share(salary) - compute(salary)[:ee] - end - - def self.compute_total_share(salary) - compute_employer_share(salary) + compute_employee_share(salary) end end end