Sha256: bbc5c7f7411954cbf723d0de996df7a9463b675b897ec27b4087b57b36745db9

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

require "alchemy_cms"
require "pg_search"

module Alchemy
  module PgSearch
    class Engine < ::Rails::Engine
      engine_name "alchemy_pg_search"

      config.to_prepare do
        Dir.glob(Alchemy::PgSearch::Engine.root.join("app", "extensions", "**", "*_extension.rb")) do |c|
          require_dependency(c)
        end

        # In development environment, this runs on every code reload, so avoid multiple reindexing jobs
        unless Alchemy.publish_targets.map(&:name).include? 'Alchemy::PgSearch::IndexPageJob'
          # reindex the page after it was published
          Alchemy.publish_targets << Alchemy::PgSearch::IndexPageJob
        end
        # enable searchable flag in page form
        Alchemy.enable_searchable = true

        # configure multiselect to find also partial words
        # @link https://github.com/Casecommons/pg_search#searching-using-different-search-features
        ::PgSearch.multisearch_options = {
          using: {
            tsearch: {
              prefix: true,
              dictionary: Alchemy::PgSearch.config.fetch(:dictionary, "simple"),
              tsvector_column: 'searchable_content'
            }
          }
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alchemy-pg_search-6.1.0 lib/alchemy/pg_search/engine.rb
alchemy-pg_search-6.0.0 lib/alchemy/pg_search/engine.rb