class Depreciate::Depreciate

Attributes

acquisition_date[RW]
cost[RW]
lifetime[RW]
residual_value[RW]
unit[RW]

Public Class Methods

new(acquisition_date, cost, residual_value, lifetime, unit) click to toggle source
# File lib/depreciate.rb, line 5
def initialize(acquisition_date, cost, residual_value, lifetime, unit)
  @acquisition_date = acquisition_date
  @cost = cost.to_f
  @residual_value = residual_value
  @lifetime = lifetime
  @unit = unit
end

Public Instance Methods

straight_line_depreciation(evaluation_date = Time.now) click to toggle source
# File lib/depreciate.rb, line 17
def straight_line_depreciation(evaluation_date = Time.now)
  value = cost - (evaluation_date - acquisition_date) * value_lost_per_second
  if value < @residual_value
    @residual_value
  end
  value
end
value_lost_per_second() click to toggle source
# File lib/depreciate.rb, line 13
def value_lost_per_second
   return (@cost - @residual_value) / @lifetime
end