Class: Observation::Continuous
- Inherits:
-
Observation
- Object
- Observation
- Observation::Continuous
- Defined in:
- app/models/observation/continuous.rb
Instance Method Summary collapse
-
#+(observation) ⇒ Object
Use Ruby Units to add.
- #-(observation) ⇒ Object
-
#converted_value ⇒ Float
Return the value converted to the default of the descriptor If provided.
-
#unit ⇒ Unit
And instance of ruby-unit.
- #units_compatible ⇒ Object protected
Instance Method Details
#+(observation) ⇒ Object
Use Ruby Units to add
19 20 21 22 |
# File 'app/models/observation/continuous.rb', line 19 def +(observation) a = unit + observation.unit continuous_unit && descriptor.default_unit ? a.convert_to(descriptor.default_unit) : a end |
#-(observation) ⇒ Object
24 25 26 27 |
# File 'app/models/observation/continuous.rb', line 24 def -(observation) a = unit - observation.unit continuous_unit && descriptor.default_unit ? a.convert_to(descriptor.default_unit) : a end |
#converted_value ⇒ Float
Return the value converted to the default of the descriptor If provided
31 32 33 34 35 36 37 38 39 |
# File 'app/models/observation/continuous.rb', line 31 def converted_value if continuous_unit && descriptor.default_unit unit.convert_to(descriptor.default_unit).scalar.to_f # TODO: experiment with this elsif continuous_unit unit.scalar else continuous_value end end |
#unit ⇒ Unit
Returns and instance of ruby-unit.
14 15 16 |
# File 'app/models/observation/continuous.rb', line 14 def unit ::RubyUnits::Unit.new([continuous_value.to_s, continuous_unit].compact.join(' ')) end |
#units_compatible ⇒ Object (protected)
43 44 45 46 47 48 |
# File 'app/models/observation/continuous.rb', line 43 def units_compatible if descriptor && descriptor.default_unit && !continuous_unit.blank? # The =~ operator checks for convertability here. errors.add(:continuous_unit, 'units incompatible with descriptor default') unless unit =~ descriptor.unit end end |