Class: InssCalculator::Legacy::DiscountPrevidenceCalculator

Inherits:
Object
  • Object
show all
Defined in:
lib/inss_calculator/legacy/discount_previdence_calculator.rb

Overview

Direct Known Subclasses

PublicInssCalculator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(salary) ⇒ DiscountPrevidenceCalculator



10
11
12
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 10

def initialize(salary)
  @salary = salary.to_f
end

Instance Attribute Details

#salaryObject (readonly)

Returns the value of attribute salary.



8
9
10
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 8

def salary
  @salary
end

Instance Method Details

#contributionObject



14
15
16
17
18
19
20
21
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 14

def contribution
  [
    FirstDiscountCalculator.new(salary).contribution,
    SecondDiscountCalculator.new(salary).contribution,
    ThirdDiscountCalculator.new(salary).contribution,
    FourthDiscountCalculator.new(salary).contribution
  ].reduce(:+).round(2)
end

#net_salaryObject



23
24
25
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 23

def net_salary
  (salary - contribution).round(2)
end

#presentObject



27
28
29
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 27

def present
  raise InssCalculator::NoMethodError, message: 'Use a decorator instead!'
end