class Datagrid::Filters::DynamicFilter::FilterValue
Attributes
Public Class Methods
Source
# File lib/datagrid/filters/dynamic_filter.rb, line 106 def initialize(grid_class, object = nil) super() case object when Hash object = object.symbolize_keys self.field = object[:field] self.operation = object[:operation] self.value = object[:value] when Array self.field = object[0] self.operation = object[1] self.value = object[2] else raise ArgumentError, object.inspect end return unless grid_class type = grid_class.driver.normalized_column_type( grid_class.scope, field, ) self.value = type_cast(type, value) end
Calls superclass method
Public Instance Methods
Source
# File lib/datagrid/filters/dynamic_filter.rb, line 130 def inspect { field: field, operation: operation, value: value } end
Source
# File lib/datagrid/filters/dynamic_filter.rb, line 138 def to_a [field, operation, value] end
Source
# File lib/datagrid/filters/dynamic_filter.rb, line 142 def to_h { field: field, operation: operation, value: value } end
Protected Instance Methods
Source
# File lib/datagrid/filters/dynamic_filter.rb, line 148 def type_cast(type, value) return nil if value.blank? case type when :string value.to_s when :integer value.is_a?(Numeric) || value =~ %r{^\d} ? value.to_i : nil when :float value.is_a?(Numeric) || value =~ %r{^\d} ? value.to_f : nil when :date, :timestamp Datagrid::Utils.parse_date(value) when :boolean Datagrid::Utils.booleanize(value) when nil value else raise NotImplementedError, "unknown column type: #{type.inspect}" end end