alchemy-pg_search 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/app/extensions/alchemy/pg_search/page_extension.rb +2 -8
- data/app/extensions/alchemy/search/element_extension.rb +4 -0
- data/app/extensions/alchemy/search/page_extension.rb +4 -0
- data/app/jobs/alchemy/pg_search/index_page_job.rb +1 -1
- data/lib/alchemy/pg_search/version.rb +1 -1
- data/lib/alchemy-pg_search.rb +7 -31
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c1ae33c7df0a9edd59d4582f0570418ddef3c60b5cd51dfade9da06fff5c5ccf
         | 
| 4 | 
            +
              data.tar.gz: 6790580e147d7fe1153593d5a9c7c7fe73d7f0f49ebf0fb86caca618dba785f2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c9f7c4b91444eb8aed240c104fd7c44a1b12f6751128586a7aa310be5565996bd0e60e2bf874a57c2fcbb38b2e094c4d56fa8db5ed2f4256dfc98ddb50815dc7
         | 
| 7 | 
            +
              data.tar.gz: 49296c5f3ed08f8dceedc9fd77664757c9096fa92898c40db6e7714c88c2802491c21a58e2d6f80a86b946b36347ce7c0e41ac50c83a35be4a4cb19345a455fd
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,13 @@ | |
| 1 1 | 
             
            # Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
            ## [v6.1.0](https://github.com/AlchemyCMS/alchemy-pg_search/tree/v6.1.0) (2024-12-13)
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            [Full Changelog](https://github.com/AlchemyCMS/alchemy-pg_search/compare/v6.0.0...v6.1.0)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            **Merged pull requests:**
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - Use PgSearch::Document.rebuild for page reindex [\#63](https://github.com/AlchemyCMS/alchemy-pg_search/pull/63) ([sascha-karnatz](https://github.com/sascha-karnatz))
         | 
| 10 | 
            +
             | 
| 3 11 | 
             
            ## [v6.0.0](https://github.com/AlchemyCMS/alchemy-pg_search/tree/v6.0.0) (2024-12-03)
         | 
| 4 12 |  | 
| 5 13 | 
             
            [Full Changelog](https://github.com/AlchemyCMS/alchemy-pg_search/compare/v5.2.0...v6.0.0)
         | 
| @@ -6,24 +6,18 @@ module Alchemy::PgSearch::PageExtension | |
| 6 6 | 
             
                base.after_save :remove_unpublished_page
         | 
| 7 7 | 
             
                base.multisearchable(
         | 
| 8 8 | 
             
                  against: [
         | 
| 9 | 
            -
                    :meta_description,
         | 
| 10 | 
            -
                    :meta_keywords,
         | 
| 11 9 | 
             
                    :name,
         | 
| 10 | 
            +
                    :searchable_content
         | 
| 12 11 | 
             
                  ],
         | 
| 13 12 | 
             
                  additional_attributes: ->(page) { { page_id: page.id, searchable_created_at: page.public_on } },
         | 
| 14 13 | 
             
                  if: :searchable?,
         | 
| 15 14 | 
             
                )
         | 
| 16 15 | 
             
              end
         | 
| 17 16 |  | 
| 18 | 
            -
              def searchable?
         | 
| 19 | 
            -
                (definition.key?(:searchable) ? definition[:searchable] : true) &&
         | 
| 20 | 
            -
                  searchable && public? && !layoutpage?
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 17 | 
             
              private
         | 
| 24 18 |  | 
| 25 19 | 
             
              def remove_unpublished_page
         | 
| 26 | 
            -
                 | 
| 20 | 
            +
                ::PgSearch::Document.delete_by(page_id: id) unless searchable?
         | 
| 27 21 | 
             
              end
         | 
| 28 22 | 
             
            end
         | 
| 29 23 |  | 
| @@ -10,6 +10,10 @@ module Alchemy::Search::ElementExtension | |
| 10 10 | 
             
              def searchable?
         | 
| 11 11 | 
             
                searchable && public? && page.searchable? && page_version.public?
         | 
| 12 12 | 
             
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              def searchable_content
         | 
| 15 | 
            +
                ingredients.select(&:searchable?).map(&:searchable_content).join(" ").squish
         | 
| 16 | 
            +
              end
         | 
| 13 17 | 
             
            end
         | 
| 14 18 |  | 
| 15 19 | 
             
            Alchemy::Element.prepend(Alchemy::Search::ElementExtension)
         | 
| @@ -5,6 +5,10 @@ module Alchemy::Search::PageExtension | |
| 5 5 | 
             
                (definition.key?(:searchable) ? definition[:searchable] : true) &&
         | 
| 6 6 | 
             
                  searchable && public? && !layoutpage?
         | 
| 7 7 | 
             
              end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              def searchable_content
         | 
| 10 | 
            +
                all_elements.includes(ingredients: {element: :page}).map(&:searchable_content).join(" ")
         | 
| 11 | 
            +
              end
         | 
| 8 12 | 
             
            end
         | 
| 9 13 |  | 
| 10 14 | 
             
            Alchemy::Page.prepend(Alchemy::Search::PageExtension)
         | 
    
        data/lib/alchemy-pg_search.rb
    CHANGED
    
    | @@ -17,37 +17,13 @@ module Alchemy | |
| 17 17 | 
             
                extend Config
         | 
| 18 18 |  | 
| 19 19 | 
             
                ##
         | 
| 20 | 
            -
                #  | 
| 21 | 
            -
                def self.rebuild
         | 
| 22 | 
            -
                   | 
| 23 | 
            -
                    :: | 
| 24 | 
            -
                     | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
                ##
         | 
| 29 | 
            -
                # remove the whole index for the page
         | 
| 30 | 
            -
                #
         | 
| 31 | 
            -
                # @param page [Alchemy::Page]
         | 
| 32 | 
            -
                def self.remove_page(page)
         | 
| 33 | 
            -
                  ::PgSearch::Document.delete_by(page_id: page.id)
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                ##
         | 
| 37 | 
            -
                # index a single page and indexable ingredients
         | 
| 38 | 
            -
                #
         | 
| 39 | 
            -
                # @param page [Alchemy::Page]
         | 
| 40 | 
            -
                def self.index_page(page)
         | 
| 41 | 
            -
                  page.update_pg_search_document
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                  document = page.pg_search_document
         | 
| 44 | 
            -
                  return if document.nil?
         | 
| 45 | 
            -
             | 
| 46 | 
            -
                  ingredient_content = page.all_elements.includes(ingredients: {element: :page}).map do |element|
         | 
| 47 | 
            -
                    element.ingredients.select { |i| i.searchable? }.map(&:searchable_content).join(" ")
         | 
| 48 | 
            -
                  end.join(" ")
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                  document.update_column(:content, "#{document.content} #{ingredient_content}".squish)
         | 
| 20 | 
            +
                # Reindex all supported Alchemy pages
         | 
| 21 | 
            +
                def self.rebuild(clean_up: true, transactional: true)
         | 
| 22 | 
            +
                  ::PgSearch::Multisearch.rebuild(
         | 
| 23 | 
            +
                    Alchemy::Page,
         | 
| 24 | 
            +
                    clean_up: clean_up,
         | 
| 25 | 
            +
                    transactional: transactional
         | 
| 26 | 
            +
                  )
         | 
| 51 27 | 
             
                end
         | 
| 52 28 |  | 
| 53 29 | 
             
                ##
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: alchemy-pg_search
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 6. | 
| 4 | 
            +
              version: 6.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Thomas von Deyen
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024-12- | 
| 11 | 
            +
            date: 2024-12-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: alchemy_cms
         |