module Datagrid::Filters::CompositeFilters::ClassMethods

@!visibility private

Public Instance Methods

date_range_filters(field, from_options = {}, to_options = {}) click to toggle source
# File lib/datagrid/filters/composite_filters.rb, line 15
def date_range_filters(field, from_options = {}, to_options = {})
  Utils.warn_once('date_range_filters is deprecated in favor of range option for date filter')
  from_options = normalize_composite_filter_options(from_options, field)
  to_options = normalize_composite_filter_options(to_options, field)

  filter(from_options[:name] || :"from_#{field.to_s.tr('.', '_')}", :date, **from_options) do |date, scope, grid|
    grid.driver.greater_equal(scope, field, date)
  end
  filter(to_options[:name] || :"to_#{field.to_s.tr('.', '_')}", :date, **to_options) do |date, scope, grid|
    grid.driver.less_equal(scope, field, date)
  end
end
integer_range_filters(field, from_options = {}, to_options = {}) click to toggle source
# File lib/datagrid/filters/composite_filters.rb, line 28
def integer_range_filters(field, from_options = {}, to_options = {})
  Utils.warn_once('integer_range_filters is deprecated in favor of range option for integer filter')
  from_options = normalize_composite_filter_options(from_options, field)
  to_options = normalize_composite_filter_options(to_options, field)
  filter(from_options[:name] || :"from_#{field.to_s.tr('.', '_')}", :integer, **from_options) do |value, scope, grid|
    grid.driver.greater_equal(scope, field, value)
  end
  filter(to_options[:name] || :"to_#{field.to_s.tr('.', '_')}", :integer, **to_options) do |value, scope, grid|
    grid.driver.less_equal(scope, field, value)
  end
end
normalize_composite_filter_options(options, field) click to toggle source
# File lib/datagrid/filters/composite_filters.rb, line 40
def normalize_composite_filter_options(options, field)
  if options.is_a?(String) || options.is_a?(Symbol)
    options = {name: options}
  end
  options
end