Class: InssCalculator::Legacy::DiscountPrevidenceCalculator
- Inherits:
-
Object
- Object
- InssCalculator::Legacy::DiscountPrevidenceCalculator
- Defined in:
- lib/inss_calculator/legacy/discount_previdence_calculator.rb
Overview
Based on this insecure protocoll site www.coalize.com.br/calculadora-de-inss Check also the official law www.in.gov.br/en/web/dou/-/portaria-interministerial-mps/mf-n-2-de-11-de-janeiro-de-2024-537035232
Direct Known Subclasses
Instance Attribute Summary collapse
-
#salary ⇒ Object
readonly
Returns the value of attribute salary.
Instance Method Summary collapse
- #contribution ⇒ Object
-
#initialize(salary) ⇒ DiscountPrevidenceCalculator
constructor
A new instance of DiscountPrevidenceCalculator.
- #net_salary ⇒ Object
- #present ⇒ Object
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
#salary ⇒ Object (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
#contribution ⇒ Object
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_salary ⇒ Object
23 24 25 |
# File 'lib/inss_calculator/legacy/discount_previdence_calculator.rb', line 23 def net_salary (salary - contribution).round(2) end |
#present ⇒ Object
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 |