lib/barometer/data/units.rb in barometer-0.7.3 vs lib/barometer/data/units.rb in barometer-0.8.0
- old
+ new
@@ -1,29 +1,29 @@
module Barometer
class Data::Units
include Comparable
-
+
attr_accessor :metric
-
+
def initialize(metric=true); @metric = metric; end
-
+
#
# HELPERS
#
-
+
def metric?; @metric; end
def metric!; @metric=true; end
def imperial!; @metric=false; end
# assigns a value to the right attribute based on metric setting
#
def <<(value)
return unless value
-
+
# these values can be treated like 'nil'
nil_values = ["NA", "N/A", ""]
-
+
begin
if value.is_a?(Array)
value_m = value[0].to_f if (value[0] && !nil_values.include?(value[0]))
value_i = value[1].to_f if (value[1] && !nil_values.include?(value[1]))
value_b = nil
@@ -33,17 +33,17 @@
value_b = value.to_f if (value && !nil_values.include?(value))
end
rescue
# do nothing
end
-
+
self.metric? ? self.metric_default = value_m || value_b :
self.imperial_default = value_i || value_b
end
-
+
# stubs
#
def metric_default=(value); raise NotImplementedError; end
def imperial_default=(value); raise NotImplementedError; end
end
-end
\ No newline at end of file
+end