Sha256: 26609c6bea90050fc6eb4df52c44c6484f5aae480b03616b7dbf8b435ec1fbb8
Contents?: true
Size: 1.93 KB
Versions: 3
Compression:
Stored size: 1.93 KB
Contents
module Datagrid module Filters # @!visibility private module CompositeFilters def self.included(base) base.extend ClassMethods base.class_eval do end end # @!visibility private module ClassMethods 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 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 def normalize_composite_filter_options(options, field) if options.is_a?(String) || options.is_a?(Symbol) options = {name: options} end options end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
datagrid-1.8.2 | lib/datagrid/filters/composite_filters.rb |
datagrid-1.8.1 | lib/datagrid/filters/composite_filters.rb |
datagrid-1.8.0 | lib/datagrid/filters/composite_filters.rb |