Class: Warped::Filter::Decimal

Inherits:
Base
  • Object
show all
Defined in:
lib/warped/api/filter/decimal.rb

Constant Summary collapse

RELATIONS =
%w[eq neq gt gte lt lte between in not_in is_null is_not_null].freeze

Instance Attribute Summary

Attributes inherited from Base

#alias_name, #name, #options, #strict

Instance Method Summary collapse

Methods inherited from Base

#initialize, kind, #kind, #parameter_name, #relation, #relations

Constructor Details

This class inherits a constructor from Warped::Filter::Base

Instance Method Details

#cast(value) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/warped/api/filter/decimal.rb', line 11

def cast(value)
  return if value.blank?

  casted_value = case value
                 when ::BigDecimal
                   value
                 when ::Integer, ::Float, ::String
                   value.to_d
                 end

  casted_value.tap do |casted|
    raise ValueError, "#{value} cannot be casted to #{kind}" if casted.nil? && strict
  end
end

#html_typeObject



26
27
28
# File 'lib/warped/api/filter/decimal.rb', line 26

def html_type
  "number"
end