Class: LoanCreator::Common
Constant Summary
collapse
- PERIODS_IN_MONTHS =
{
month: 1,
quarter: 3,
semester: 6,
year: 12
}.freeze
- REQUIRED_ATTRIBUTES =
[
:period,
:amount,
:annual_interests_rate,
:starts_on,
:duration_in_periods
].freeze
- OPTIONAL_ATTRIBUTES =
{
deferred_in_periods: 0,
interests_start_date: nil,
initial_values: {}
}.freeze
BorrowerTimetable::BORROWER_FINANCIAL_ATTRIBUTES
Class Method Summary
collapse
Instance Method Summary
collapse
borrower_timetable
Constructor Details
#initialize(**options) ⇒ Common
Returns a new instance of Common.
30
31
32
33
34
35
36
37
38
|
# File 'lib/loan_creator/common.rb', line 30
def initialize(**options)
@options = options
require_attributes
reinterpret_attributes
set_attributes
validate_attributes
set_initial_values
validate_initial_values
end
|
Class Method Details
.bigd(value) ⇒ Object
54
55
56
|
# File 'lib/loan_creator/common.rb', line 54
def self.bigd(value)
BigDecimal(value, BIG_DECIMAL_DIGITS)
end
|
Instance Method Details
#bigd(value) ⇒ Object
58
59
60
|
# File 'lib/loan_creator/common.rb', line 58
def bigd(value)
self.class.bigd(value)
end
|
50
51
52
|
# File 'lib/loan_creator/common.rb', line 50
def lender_timetable
raise NotImplementedError
end
|
#periodic_interests_rate ⇒ Object
45
46
47
48
|
# File 'lib/loan_creator/common.rb', line 45
def periodic_interests_rate
@periodic_interests_rate ||=
periodic_interests_rate_percentage.div(100, BIG_DECIMAL_DIGITS)
end
|
#periodic_interests_rate_percentage ⇒ Object
40
41
42
43
|
# File 'lib/loan_creator/common.rb', line 40
def periodic_interests_rate_percentage
@periodic_interests_rate_percentage ||=
annual_interests_rate.div(12 / PERIODS_IN_MONTHS[period], BIG_DECIMAL_DIGITS)
end
|