Module: Jsonapi::Filter::ClassMethods

Defined in:
lib/jsonapi/scopes/filters.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#filtersObject (readonly)

Returns the value of attribute filters.



12
13
14
# File 'lib/jsonapi/scopes/filters.rb', line 12

def filters
  @filters
end

Instance Method Details

#apply_filter(params) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/jsonapi/scopes/filters.rb', line 19

def apply_filter(params)
  records = self
  filtering_params = params.dig(:filter) || {}

  filtering_params.each do |key, value|
    records = records.public_send(key, value) if @filters.include?(key.to_sym)
  end

  records
end

#filter(name, *args) ⇒ Object



14
15
16
17
# File 'lib/jsonapi/scopes/filters.rb', line 14

def filter(name, *args)
  scope(name, *args)
  @filters << name
end