module RiceCooker::Search::ClassMethods

Public Instance Methods

fuzzy_searched() click to toggle source
# File lib/rice_cooker/search.rb, line 33
def fuzzy_searched
  cattr_accessor :fuzzy_keys

  # On recupere tous les filtres autorisés
  self.fuzzy_keys = fuzzy_fields_for(resource_model)
  has_scope :fuzzy, only: [:index] do |_controller, scope, value|
    scope = reduce_fields_where(scope, fuzzy_keys, value)
    scope
  end
end
searched(additional_searching_params = {}) click to toggle source
# File lib/rice_cooker/search.rb, line 12
def searched(additional_searching_params = {})
  cattr_accessor :searching_keys
  cattr_accessor :custom_searchs

  # On normalize tout ca
  additional_searching_params = format_additional_param(additional_searching_params, 'filtering')

  # On recupere tous les filtres autorisés
  allowed_keys = (searchable_fields_for(resource_model) + additional_searching_params.keys)

  # On recupere le default
  self.searching_keys = allowed_keys
  self.custom_searchs = additional_searching_params

  has_scope :search, type: :hash, only: [:index] do |_controller, scope, value|
    params = parse_searching_param(value, searching_keys)
    scope = apply_search_to_collection(scope, params, custom_searchs)
    scope
  end
end