Class: Formulas::Superannuation

Inherits:
Object
  • Object
show all
Includes:
FrequencyConversions
Defined in:
lib/formulas/superannuation.rb

Overview

Calculate the super using the as per frequency

salary = Formulas::Salary.new(gross_pay: 52_000, Salary::ANNUAL) super = Super.new(salary: salary, Super::KIWISAVER)

super.calculate

> 1,560.00

super.calculate(Formulas::WEEKLY)

> 30.00

Constant Summary collapse

KIWISAVER =
3
AU_SUPER =
10

Instance Method Summary collapse

Methods included from FrequencyConversions

#convert_annually_to_annually, #convert_annually_to_fortnightly, #convert_annually_to_monthly, #convert_annually_to_weekly, #convert_fortnightly_to_annually, #convert_fortnightly_to_monthly, #convert_fortnightly_to_weekly, #convert_monthly_to_annually, #convert_monthly_to_fortnightly, #convert_monthly_to_weekly, #convert_weekly_to_annually, #convert_weekly_to_fortnightly, #convert_weekly_to_monthly

Constructor Details

#initialize(salary:, superannuation:) ⇒ Superannuation

Returns a new instance of Superannuation.



21
22
23
24
# File 'lib/formulas/superannuation.rb', line 21

def initialize(salary:, superannuation:)
  @salary =  salary
  @super = superannuation
end

Instance Method Details

#calculate(request_frequency: Formulas::ANNUALLY) ⇒ Object



26
27
28
29
# File 'lib/formulas/superannuation.rb', line 26

def calculate(request_frequency: Formulas::ANNUALLY)
  result = @salary.pay(request_frequency: request_frequency) * (@super.to_f / 100)
  result.round(2)
end