Class: Filtering::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/filtering/base.rb

Instance Method Summary collapse

Constructor Details

#initialize(params, args = {}) ⇒ Base

Returns a new instance of Base.



2
3
4
5
6
7
# File 'lib/filtering/base.rb', line 2

def initialize(params, args = {})
  @plain_params = params.permit(plain_acessible_params) unless plain_acessible_params.empty?
  @complex_params = params.permit(complex_acessible_params) unless complex_acessible_params.empty?
  @page = args[:page]
  @results = relation
end

Instance Method Details

#callObject



9
10
11
12
13
14
15
16
17
# File 'lib/filtering/base.rb', line 9

def call
  raise "@relation not initialized at #{self.class.name}. Add @relation = Offer for example." if relation.nil?

  filter_by_plain_params unless plain_params.empty?
  filter_by_complex_params unless complex_params.empty?

  return results.page(page) if results.respond_to?(:page)
  results
end