Module: PgSearch::Model::ClassMethods

Defined in:
lib/pg_search/model.rb

Instance Method Summary collapse

Instance Method Details

#multisearchable(options = {}) ⇒ Object



24
25
26
27
28
# File 'lib/pg_search/model.rb', line 24

def multisearchable(options = {})
  include PgSearch::Multisearchable
  class_attribute :pg_search_multisearchable_options
  self.pg_search_multisearchable_options = options
end

#pg_search_scope(name, options) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/pg_search/model.rb', line 8

def pg_search_scope(name, options)
  options_proc = if options.respond_to?(:call)
                   options
                 elsif options.respond_to?(:merge)
                   ->(query) { { query: query }.merge(options) }
                 else
                   raise ArgumentError, 'pg_search_scope expects a Hash or Proc'
                 end

  define_singleton_method(name) do |*args|
    config = Configuration.new(options_proc.call(*args), self)
    scope_options = ScopeOptions.new(config)
    scope_options.apply(self)
  end
end