Class: Admin::Base::FilterBuilder

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_class, params) ⇒ FilterBuilder

Returns a new instance of FilterBuilder.



8
9
10
11
# File 'lib/admin/base/filter_builder.rb', line 8

def initialize(resource_class, params)
  @resource_class = resource_class
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



6
7
8
# File 'lib/admin/base/filter_builder.rb', line 6

def params
  @params
end

#resource_classObject (readonly)

Returns the value of attribute resource_class.



6
7
8
# File 'lib/admin/base/filter_builder.rb', line 6

def resource_class
  @resource_class
end

Instance Method Details

#apply(scope) ⇒ Object



13
14
15
16
17
18
# File 'lib/admin/base/filter_builder.rb', line 13

def apply(scope)
  scope = apply_search(scope)
  scope = apply_filters(scope)
  scope = apply_sort(scope)
  scope
end

#filter_paramsObject



20
21
22
23
24
25
26
27
# File 'lib/admin/base/filter_builder.rb', line 20

def filter_params
  return {} unless index_config

  permitted_keys = [ :search, :sort, :sort_direction, :page ]
  permitted_keys += index_config.filters_list.map(&:name)

  params.permit(*permitted_keys).to_h.symbolize_keys
end