master
1class QuantityType < ActiveRecord::Type::Float
2 def cast(value)
3 return nil if value.nil?
4
5 if value.is_a? Quantity
6 value.to(:lbs)
7 elsif value.is_a? Hash
8 Quantity.new(value[:amount].to_f, value[:unit].to_sym)
9 else
10 Quantity.new(value.to_f, :lbs)
11 end
12 end
13
14 def serialize(value)
15 if value.is_a? Quantity
16 super(value.to(:lbs).to_f)
17 else
18 super(value)
19 end
20 end
21end