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