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