Class: Datagrid::Filters::IntegerFilter

Inherits:
BaseFilter
  • Object
show all
Includes:
RangedFilter
Defined in:
lib/datagrid/filters/integer_filter.rb

Constant Summary

Constants included from RangedFilter

RangedFilter::SERIALIZED_RANGE

Instance Attribute Summary

Attributes inherited from BaseFilter

#block, #grid_class, #name, #options

Instance Method Summary collapse

Methods included from RangedFilter

#default_filter_where, #parse_values, #range?

Methods inherited from BaseFilter

#allow_blank?, #allow_nil?, #apply, #default, #default_scope?, #dummy?, #enabled?, #enum_checkboxes?, form_builder_helper_name, #form_builder_helper_name, #format, #header, #initialize, #input_options, #label_options, #multiple?, #parse_values, #range?, #separator, #supports_range?, #type, #unapplicable_value?

Constructor Details

This class inherits a constructor from Datagrid::Filters::BaseFilter

Instance Method Details

#default_input_optionsObject



10
11
12
# File 'lib/datagrid/filters/integer_filter.rb', line 10

def default_input_options
  { **super, type: "number", step: "1" }
end

#parse(value) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/datagrid/filters/integer_filter.rb', line 14

def parse(value)
  return nil if value.blank?
  if defined?(ActiveRecord) && value.is_a?(ActiveRecord::Base) &&
     value.respond_to?(:id) && value.id.is_a?(Integer)
    return value.id
  end
  return value if value.is_a?(Range)

  return nil if value.to_i.zero? && value.is_a?(String) && value !~ %r{\A\s*-?0}

  value.to_i
end