Class: MeterCat::Divide

Inherits:
Object
  • Object
show all
Defined in:
lib/meter_cat/calculator.rb

Overview

Divide

Constant Summary collapse

FORMAT_RATIO =
"%0.1f"
FORMAT_PERCENTAGE =
"%0.1f\%"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(numerator, denominator, format) ⇒ Divide

Returns a new instance of Divide.



51
52
53
54
55
# File 'lib/meter_cat/calculator.rb', line 51

def initialize( numerator, denominator, format )
  @numerator = numerator
  @denominator = denominator
  @format = format
end

Instance Attribute Details

#denominatorObject

Returns the value of attribute denominator.



46
47
48
# File 'lib/meter_cat/calculator.rb', line 46

def denominator
  @denominator
end

#formatObject

Returns the value of attribute format.



46
47
48
# File 'lib/meter_cat/calculator.rb', line 46

def format
  @format
end

#numeratorObject

Returns the value of attribute numerator.



46
47
48
# File 'lib/meter_cat/calculator.rb', line 46

def numerator
  @numerator
end

Instance Method Details

#calculate(meters, date) ⇒ Object



57
58
59
60
61
62
63
64
65
# File 'lib/meter_cat/calculator.rb', line 57

def calculate( meters, date )
  numerator = meters[ @numerator ] ? ( meters[ @numerator ][ date ] || 0 ) : 0
  denominator = meters[ @denominator ] ? ( meters[ @denominator ][ date ] || 0 ) : 0

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

  return sprintf( @format, value )
end

#dependenciesObject



67
68
69
# File 'lib/meter_cat/calculator.rb', line 67

def dependencies
  [ @numerator, @denominator ]
end