module Formulas::StudentLoanRepayment

Provide calculation to work out student loan repayment in frequency loan = StudentLoan.new(salary_amount: 1000, salary_frequency: Income::Salary::WEEKLY)

loan.repayment

> <#ConstantPerPeriod>

loan.repayment

> 317

Attributes

repayment[R]

Public Class Methods

new(income_strategy: , repayment_strategy:, rates:) click to toggle source
# File lib/formulas/student_loan_repayment.rb, line 23
def initialize(income_strategy: , repayment_strategy:, rates:)
  raise 'Missing required salary' unless income_strategy
  raise 'Missing required repayment rates' unless rates
  raise 'Missing required repayment strategy' unless repayment_strategy

  @repayment = repayment_strategy.new(salary: income_strategy, repayment: rates)
end