Sha256: 1a64bd828b79dc3fda150dc6f7d9a9a470dc126614daa87feea20705939d166c

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

Alchemy::Element.class_eval do
  include PgSearch::Model

  pg_search_scope :full_text_search,
    associated_against: {
      searchable_essence_texts: :body,
      searchable_essence_richtexts: :stripped_body,
      searchable_essence_pictures: :caption,
    },
    using: {
      tsearch: { prefix: true },
    }

  has_many :searchable_essence_texts,
    -> {
      includes(:element)
        .where(alchemy_contents: { searchable: true })
        .where(alchemy_elements: { public: true })
    },
    class_name: "Alchemy::EssenceText",
    source_type: "Alchemy::EssenceText",
    through: :contents,
    source: :essence

  has_many :searchable_essence_richtexts,
    -> {
      includes(:element)
        .where(alchemy_contents: { searchable: true })
        .where(alchemy_elements: { public: true })
    },
    class_name: "Alchemy::EssenceRichtext",
    source_type: "Alchemy::EssenceRichtext",
    through: :contents,
    source: :essence

  has_many :searchable_essence_pictures,
    -> {
      includes(:element)
        .where(alchemy_contents: { searchable: true })
        .where(alchemy_elements: { public: true })
    },
    class_name: "Alchemy::EssencePicture",
    source_type: "Alchemy::EssencePicture",
    through: :contents,
    source: :essence

  has_many :searchable_contents,
    -> {
      where(essence_type: Alchemy::PgSearch::SEARCHABLE_ESSENCES.map { |k| "Alchemy::#{k}" })
    },
    class_name: "Alchemy::Content",
    source: :contents
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
alchemy-pg_search-3.0.0 lib/alchemy/pg_search/element_extension.rb
alchemy-pg_search-2.4.0 lib/alchemy/pg_search/element_extension.rb
alchemy-pg_search-2.3.0 lib/alchemy/pg_search/element_extension.rb
alchemy-pg_search-2.2.0 lib/alchemy/pg_search/element_extension.rb
alchemy-pg_search-2.1.0 lib/alchemy/pg_search/element_extension.rb
alchemy-pg_search-2.0.0 lib/alchemy/pg_search/element_extension.rb