module JSONAPI::Resources::Filterer::ClassMethods
Public Instance Methods
apply_filter(records, filter, value, _options = {})
click to toggle source
Calls superclass method
# File lib/jsonapi/resources/filterer.rb, line 37 def apply_filter(records, filter, value, _options = {}) if self._filterer self._filterer.filter({filter => value}, {starting_query: records}) else super(records, filter, value, _options = {}) end end
filterer(filterer_class)
click to toggle source
# File lib/jsonapi/resources/filterer.rb, line 23 def filterer(filterer_class) self._filterer = filterer_class if self._filterer method_names = self._filterer.instance_methods. grep(/^param_\w+/) filter_names = method_names.map do |m| m.to_s.sub("param_", "").to_sym end filter_names -= self._allowed_filters.keys filters(*filter_names) end end
filterer_class()
click to toggle source
# File lib/jsonapi/resources/filterer.rb, line 17 def filterer_class class_name = self.name.demodulize.gsub("Resource", "Filterer") module_name = self.name.deconstantize filterer_class_from(module_name, class_name) end
Private Instance Methods
filterer_class_from(module_name, class_name)
click to toggle source
# File lib/jsonapi/resources/filterer.rb, line 47 def filterer_class_from(module_name, class_name) if module_name.empty? Object.const_get(class_name) else module_name.constantize.const_get(class_name) end rescue NameError => e nil end