lib/convertable_values.rb in convertable_values-0.1.0 vs lib/convertable_values.rb in convertable_values-0.1.1
- old
+ new
@@ -16,17 +16,17 @@
define_method "#{value_attr}=".to_sym do |new_value|
unit_str = send(unit_attr.to_sym)
if new_value && unit_str
# store the value converted to the base unit corresponding to the given unit
- if respond_to?(:write_attribute)
+ if respond_to?(:write_attribute, true)
write_attribute(value_attr.to_sym, new_value.send(unit_str))
else
instance_variable_set("@#{value_attr}".to_sym, new_value.send(unit_str))
end
else
- if respond_to?(:write_attribute)
+ if respond_to?(:write_attribute, true)
write_attribute(value_attr.to_sym, new_value)
else
instance_variable_set("@#{value_attr}".to_sym, new_value)
end
end
@@ -36,39 +36,39 @@
define_method value_attr.to_sym do
unit_str = send(unit_attr.to_sym)
if unit_str
# return the value converted back to whatever unit was stored
- if respond_to?(:read_attribute)
+ if respond_to?(:read_attribute, true)
read_attribute(value_attr.to_sym).to(unit_str.to_sym)
else
instance_variable_get("@#{value_attr}".to_sym).to(unit_str.to_sym)
end
else
- if respond_to?(:read_attribute)
+ if respond_to?(:read_attribute, true)
read_attribute(value_attr.to_sym)
else
instance_variable_get("@#{value_attr}".to_sym)
end
end
end
# Create override method for updating value when unit is set/changed
define_method "#{unit_attr}=".to_sym do |new_unit|
- if respond_to?(:read_attribute)
+ if respond_to?(:read_attribute, true)
old_unit = read_attribute(unit_attr.to_sym)
else
old_unit = instance_variable_get("@#{unit_attr}".to_sym)
end
- if respond_to?(:write_attribute)
+ if respond_to?(:write_attribute, true)
write_attribute(unit_attr.to_sym, new_unit)
else
instance_variable_set("@#{unit_attr}".to_sym, new_unit)
end
# Re-assign the value so it will be converted properly
- if respond_to?(:read_attribute)
+ if respond_to?(:read_attribute, true)
value = read_attribute(value_attr.to_sym)
else
value = instance_variable_get("@#{value_attr}".to_sym)
end
send("#{value_attr}=".to_sym, value) if value && old_unit.nil?