Class: FilterMe::Filter::ArelFieldFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/filter_me/filter/arel_field_filter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filters, configuration) ⇒ ArelFieldFilter

Returns a new instance of ArelFieldFilter.



6
7
8
9
10
11
12
13
# File 'lib/filter_me/filter/arel_field_filter.rb', line 6

def initialize(filters, configuration)
	@filters = filters
	@configuration = configuration

	unless validator.valid_filters?(filters)
		raise FiltersNotWhiteListedError, "The filter types #{validator.invalid_filters(filters)} are not allowed."
	end
end

Instance Attribute Details

#configurationObject

Returns the value of attribute configuration.



4
5
6
# File 'lib/filter_me/filter/arel_field_filter.rb', line 4

def configuration
  @configuration
end

#filtersObject

Returns the value of attribute filters.



4
5
6
# File 'lib/filter_me/filter/arel_field_filter.rb', line 4

def filters
  @filters
end

Instance Method Details

#filter(relation) ⇒ Object



15
16
17
# File 'lib/filter_me/filter/arel_field_filter.rb', line 15

def filter(relation)
	arel_filters.inject { |arel_relation, filter| filter.and(arel_relation) }
end