Sha256: 85219e186b0793790ccd18a0eedc3c3fbd1538a5c93bc8d4c448f0c1325db74b

Contents?: true

Size: 767 Bytes

Versions: 3

Compression:

Stored size: 767 Bytes

Contents

module SearchRedux
  extend Helpers

  class Searchable
    attr_accessor :columns
    attr_accessor :rank
    attr_reader   :options

    def self.default_options
      @default_options ||= {
        :columns => %w(title content),
        :rank    => 'title'
      }
    end

    def initialize(options = {})
      options = self.class.default_options.merge(options)

      @options = options
    end

    def full_text_search(query, active_record_instance)
      if query.present?
        @options.merge! :query => query

        adapter  = SearchRedux.db_adapter
        strategy = SearchRedux.select_best_query_strategy(adapter, @options)

        strategy.call(active_record_instance)
      else
        active_record_instance.scoped
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
search_redux-1.0.3 lib/search_redux/searchable.rb
search_redux-1.0.2 lib/search_redux/searchable.rb
search_redux-1.0.1 lib/search_redux/searchable.rb