Method: Liquid::Utils.to_number

Defined in:
lib/liquid/utils.rb

.to_number(obj) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/liquid/utils.rb', line 48

def self.to_number(obj)
  case obj
  when Float
    BigDecimal(obj.to_s)
  when Numeric
    obj
  when String
    /\A-?\d+\.\d+\z/.match?(obj.strip) ? BigDecimal(obj) : obj.to_i
  else
    if obj.respond_to?(:to_number)
      obj.to_number
    else
      0
    end
  end
end