class Increaser

Attributes

amount[RW]
composer[RW]
scope[RW]

Public Class Methods

new(composer, scope) click to toggle source
# File lib/tax_girl/increaser.rb, line 4
def initialize(composer, scope)
  @composer          = composer
  @scope             = scope
  @amount            = 0
  @currency_demand   = composer.demand_methods[:increase][:currency]
  @percentage_demand = composer.demand_methods[:increase][:percentage]

  calculate_amount if @currency_demand.any?
end

Public Instance Methods

calculate_amount() click to toggle source
# File lib/tax_girl/increaser.rb, line 14
def calculate_amount
  calculate_currency
  calculate_percentage

  composer.total = amount
end
calculate_currency() click to toggle source
# File lib/tax_girl/increaser.rb, line 21
def calculate_currency
  self.amount += @currency_demand.map do |method|
    scope.send(method) || 0
  end.reduce(:+)
end
calculate_percentage() click to toggle source
# File lib/tax_girl/increaser.rb, line 27
def calculate_percentage
  @percentage_demand.each do |method|
    value = scope.send(method) || 0
    self.amount += (value.to_f / 100) * amount
  end
end