Class: Splittable::Division

Inherits:
Object
  • Object
show all
Defined in:
lib/splittable/division.rb

Instance Method Summary collapse

Constructor Details

#initialize(value:, quantity:, precision: 2) ⇒ Division

Returns a new instance of Division.



4
5
6
7
8
9
10
# File 'lib/splittable/division.rb', line 4

def initialize(value:, quantity:, precision: 2)
  @precision = precision
  @value = BigDecimal(value, 15).truncate(precision)
  @quantity = BigDecimal(quantity.to_i, 15)

  check_quantity_as_positive_value!
end

Instance Method Details

#callObject



12
13
14
15
16
17
18
# File 'lib/splittable/division.rb', line 12

def call
  partial_value = (value / quantity).truncate(precision)
  installments = [partial_value] * quantity
  installments[0] += value - installments.sum.to_d

  installments
end