Class: MeterCat::Divide
- Inherits:
-
Object
- Object
- MeterCat::Divide
- Defined in:
- lib/meter_cat/calculator.rb
Overview
Divide
Constant Summary collapse
- FORMAT_RATIO =
"%0.1f"
- FORMAT_PERCENTAGE =
"%0.1f\%"
Instance Attribute Summary collapse
-
#denominator ⇒ Object
Returns the value of attribute denominator.
-
#format ⇒ Object
Returns the value of attribute format.
-
#numerator ⇒ Object
Returns the value of attribute numerator.
Instance Method Summary collapse
- #calculate(meters, date) ⇒ Object
- #dependencies ⇒ Object
-
#initialize(numerator, denominator, format) ⇒ Divide
constructor
A new instance of Divide.
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
#denominator ⇒ Object
Returns the value of attribute denominator.
46 47 48 |
# File 'lib/meter_cat/calculator.rb', line 46 def denominator @denominator end |
#format ⇒ Object
Returns the value of attribute format.
46 47 48 |
# File 'lib/meter_cat/calculator.rb', line 46 def format @format end |
#numerator ⇒ Object
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 |
#dependencies ⇒ Object
67 68 69 |
# File 'lib/meter_cat/calculator.rb', line 67 def dependencies [ @numerator, @denominator ] end |