class MeterCat::Divide

Divide

Constants

FORMAT_PERCENTAGE
FORMAT_RATIO

Attributes

denominator[RW]
format[RW]
numerator[RW]

Public Class Methods

new(numerator, denominator, format) click to toggle source
# File lib/meter_cat/calculator.rb, line 52
def initialize(numerator, denominator, format)
  @numerator = numerator
  @denominator = denominator
  @format = format
end

Public Instance Methods

calculate(meters, date) click to toggle source

TODO: Rename format attr rubocop:disable Style/FormatString

# File lib/meter_cat/calculator.rb, line 60
def calculate(meters, date)
  numerator = meters[@numerator] ? (meters[@numerator][date] || 0) : 0
  denominator = meters[@denominator] ? (meters[@denominator][date] || 0) : 0

  value = denominator.zero? ? 0.0 : (numerator.to_f / denominator.to_f)
  value *= 100 if @format == FORMAT_PERCENTAGE

  return sprintf(@format, value)
end
dependencies() click to toggle source
# File lib/meter_cat/calculator.rb, line 70
def dependencies
  [@numerator, @denominator]
end