alchemy-pg_search 1.2.0 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49d88251b2d43c33f9512645a9d2a47f99370b91392dff0752bfa7827dab9484
4
- data.tar.gz: 2b402676acaf93b70bb00c900f509bdc3fb2afedf8682040410ff4d0e75187ef
3
+ metadata.gz: 0f7e0df77f37c90847ca65e06e9e857b1ce34c3967a5f4ad2b49b5b628a92216
4
+ data.tar.gz: f090bfccc9e38990d60047eaa41f7752ee6e96dbb9b80c7c7d0c747ab7296535
5
5
  SHA512:
6
- metadata.gz: 5ea033157ed66c0ac4f198d1879f9a78102a237f33977b9f43a0165e4e988baef011f1e28fc1e456e747c1ed134275526293da84f6d181019f668afeedf323e9
7
- data.tar.gz: c7bb6894fad22d584ce463e72f57b261d3aa38de6abcd33e80eea39c2e8c55ebad30a279cb96acf9cb07a63a66a10dcbc52e6bb4e93675aeaad588a47a1960b8
6
+ metadata.gz: e753341799782ba728dfffd808f0b8dfd3e4c224973858d6e04a0bcba28f234cff4f1bca64e7b74ef2f6f179523cfbc75df2824c3bab6fa2d09e31e59d836d7d
7
+ data.tar.gz: 612150eac4dba1e71277a325617ae84ae138eaec33b3ae7d330065255cd7f98a05f0094c508f5650f70edb981a716e664b919f43641f9a1dedfcaef1f39d5cd8
data/.travis.yml CHANGED
@@ -1,10 +1,13 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.3
5
- - 2.4
4
+ - 2.5
5
+ services:
6
+ - postgresql
7
+ cache:
8
+ - bundler
6
9
  branches:
7
10
  only:
8
- - master
9
- before_script: 'rake alchemy:spec:prepare'
10
- script: rspec
11
+ - main
12
+ before_script: bundle exec rake alchemy:spec:prepare
13
+ script: bundle exec rspec
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 2.0.0 (2021-09-23)
2
+
3
+ - Move searchable attribute to contents table [#20](https://github.com/AlchemyCMS/alchemy-pg_search/pull/20) by [tvdeyen](https://github.com/tvdeyen)
4
+ - Support Alchemy 4.0 [#18](https://github.com/AlchemyCMS/alchemy-pg_search/pull/18) by [tvdeyen](https://github.com/tvdeyen)
5
+
1
6
  ## 1.2.0 (2018-11-28)
2
7
 
3
8
  - Rename the #search method into #full_text_search [#14](https://github.com/AlchemyCMS/alchemy-pg_search/pull/14) by [tvdeyen](https://github.com/tvdeyen)
data/Gemfile CHANGED
@@ -1,14 +1,17 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '3.6-stable'
6
- gem 'sassc-rails'
7
- gem 'pg', '< 1.0'
5
+ gem "rails", "~> 5.0.0"
6
+ gem "alchemy_cms", github: "AlchemyCMS/alchemy_cms", branch: "4.0-stable"
7
+ gem "sassc-rails"
8
+ gem "sassc", "< 2.2.0"
9
+ gem "pg", "< 1.0"
10
+ gem "puma"
8
11
 
9
12
  group :test do
10
- gem 'factory_girl_rails'
13
+ gem "factory_bot_rails", "~> 4.8.0"
11
14
  gem "capybara"
12
- gem "pry"
13
- gem 'launchy'
15
+ gem "pry-byebug"
16
+ gem "launchy"
14
17
  end
data/README.md CHANGED
@@ -1,15 +1,15 @@
1
- [![Build Status](https://travis-ci.org/AlchemyCMS/alchemy-pg_search.svg?branch=master)](https://travis-ci.org/AlchemyCMS/alchemy-pg_search)
1
+ [![Build Status](https://travis-ci.org/AlchemyCMS/alchemy-pg_search.svg?branch=main)](https://travis-ci.org/AlchemyCMS/alchemy-pg_search)
2
2
 
3
3
  # Alchemy CMS Postgresql Fulltext Search
4
4
 
5
- This gem provides full text search for projects using postgresql databases to Alchemy CMS 3.3 and above.
5
+ This gem provides full text search for projects using postgresql databases to Alchemy CMS 4.0 and above.
6
6
 
7
7
  ## Installation
8
8
 
9
9
  Add this line to your application's `Gemfile`:
10
10
 
11
11
  ```ruby
12
- gem 'alchemy-pg_search', github: 'AlchemyCMS/alchemy-pg_search', branch: 'master'
12
+ gem 'alchemy-pg_search', github: 'AlchemyCMS/alchemy-pg_search', branch: 'main'
13
13
  ```
14
14
 
15
15
  And then execute:
@@ -120,7 +120,7 @@ en:
120
120
 
121
121
  ## Upgrading
122
122
 
123
- If you are upgrading from an old Alchemy < 3.0 based project that uses the ferret based full text search, please run this handy generator:
123
+ If you are upgrading from an old Alchemy < 4.0 based project that uses the ferret based full text search, please run this handy generator:
124
124
 
125
125
  ```shell
126
126
  $ bin/rails g alchemy:pg_search:upgrade
@@ -1,26 +1,26 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'alchemy/pg_search/version'
3
+
4
+ require "alchemy/pg_search/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "alchemy-pg_search"
8
- spec.version = Alchemy::PgSearch::VERSION
9
- spec.authors = ["Thomas von Deyen"]
10
- spec.email = ["alchemy@magiclabs.de"]
11
- spec.description = %q{PostgreSQL search for Alchemy CMS 3.0}
12
- spec.summary = %q{This gem provides PostgreSQL full text search to Alchemy 3.0}
13
- spec.homepage = "http://alchemy-cms.com"
14
- spec.license = "BSD"
7
+ spec.name = "alchemy-pg_search"
8
+ spec.version = Alchemy::PgSearch::VERSION
9
+ spec.authors = ["Thomas von Deyen"]
10
+ spec.email = ["thomas@vondeyen.com"]
11
+ spec.description = "PostgreSQL search for Alchemy CMS 4.0"
12
+ spec.summary = "This gem provides PostgreSQL full text search to Alchemy 4.0"
13
+ spec.homepage = "https://alchemy-cms.com"
14
+ spec.license = "BSD-3-Clause"
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^spec/}) }
17
17
  spec.require_paths = ["lib"]
18
18
 
19
- spec.add_runtime_dependency "alchemy_cms", ["> 3.2", "< 4.0"]
20
- spec.add_runtime_dependency "pg_search", ["~> 0.7"]
19
+ spec.add_runtime_dependency "alchemy_cms", [">= 4.0", "< 5.0"]
20
+ spec.add_runtime_dependency "pg_search", ["~> 2.1"]
21
21
  spec.add_runtime_dependency "pg"
22
22
 
23
- spec.add_development_dependency "bundler", "~> 1.3"
23
+ spec.add_development_dependency "bundler"
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "rspec-rails"
26
26
  end
@@ -23,13 +23,13 @@ module Alchemy
23
23
  # @option options class [String] (fulltext_search) The default css class of the form
24
24
  # @option options id [String] (search) The default css id of the form
25
25
  #
26
- def render_search_form(options={})
26
+ def render_search_form(options = {})
27
27
  default_options = {
28
28
  html5: false,
29
- class: 'fulltext_search',
30
- id: 'search'
29
+ class: "fulltext_search",
30
+ id: "search",
31
31
  }
32
- render 'alchemy/search/form', options: default_options.merge(options), search_result_page: search_result_page
32
+ render "alchemy/search/form", options: default_options.merge(options), search_result_page: search_result_page
33
33
  end
34
34
 
35
35
  # Renders the search results partial within +app/views/alchemy/search/_results.html+
@@ -37,12 +37,12 @@ module Alchemy
37
37
  # @option options show_result_count [Boolean] (true) Should the count of results be displayed or not?
38
38
  # @option options show_heading [Boolean] (true) Should the heading be displayed or not?
39
39
  #
40
- def render_search_results(options={})
40
+ def render_search_results(options = {})
41
41
  default_options = {
42
42
  show_result_count: true,
43
- show_heading: true
43
+ show_heading: true,
44
44
  }
45
- render 'alchemy/search/results', options: default_options.merge(options)
45
+ render "alchemy/search/results", options: default_options.merge(options)
46
46
  end
47
47
 
48
48
  def highlighted_excerpt(text, phrase, radius = 50)
data/bin/rails CHANGED
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
  # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
3
 
4
- ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
- ENGINE_PATH = File.expand_path('../../lib/alchemy_pg_search/engine', __FILE__)
4
+ ENGINE_ROOT = File.expand_path("../..", __FILE__)
5
+ ENGINE_PATH = File.expand_path("../../lib/alchemy/pg_search/engine", __FILE__)
6
6
 
7
7
  # Set up gems listed in the Gemfile.
8
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9
- require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
8
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)
9
+ require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
10
10
 
11
- require 'rails/all'
12
- require 'rails/engine/commands'
11
+ require "rails/all"
12
+ require "rails/engine/commands"
data/bin/rspec ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rspec-core", "rspec")
@@ -0,0 +1,41 @@
1
+ class MoveSearchableToContents < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :alchemy_contents, :searchable, :boolean, default: true
4
+
5
+ {
6
+ Text: "texts",
7
+ Richtext: "richtexts",
8
+ Picture: "pictures",
9
+ }.each do |klass, table|
10
+ reversible do |dir|
11
+ dir.up do
12
+ Alchemy::Content.connection.execute <<~SQL
13
+ UPDATE alchemy_contents
14
+ SET searchable = alchemy_essence_#{table}.searchable
15
+ FROM alchemy_essence_#{table}
16
+ WHERE
17
+ alchemy_contents.essence_type = 'Alchemy::Essence#{klass}'
18
+ AND
19
+ alchemy_contents.essence_id = alchemy_essence_#{table}.id
20
+ SQL
21
+ end
22
+
23
+ dir.down do
24
+ Alchemy::Content.connection.execute <<~SQL
25
+ UPDATE alchemy_essence_#{table}
26
+ SET searchable = alchemy_contents.searchable
27
+ FROM alchemy_contents
28
+ WHERE
29
+ alchemy_contents.essence_type = 'Alchemy::Essence#{klass}'
30
+ AND
31
+ alchemy_contents.essence_id = alchemy_essence_#{table}.id
32
+ SQL
33
+ end
34
+ end
35
+
36
+ remove_column "alchemy_essence_#{table}", :searchable, default: true
37
+ end
38
+
39
+ change_column_null :alchemy_contents, :searchable, false, true
40
+ end
41
+ end
@@ -1,30 +1,29 @@
1
- Alchemy::Content.class_eval do
2
-
3
- # Prepares the attributes for creating the essence.
4
- #
5
- # 1. It sets a default text if given in +elements.yml+
6
- # 2. It sets searchable value for EssenceText, EssencePicture and EssenceRichtext essences
7
- #
8
- def prepared_attributes_for_essence
9
- attributes = {
10
- ingredient: default_text(definition['default'])
11
- }
12
- if Alchemy::PgSearch.is_searchable_essence?(definition['type'])
13
- attributes.merge!(searchable: definition.fetch('searchable', true))
1
+ module Alchemy::PgSearch::ContentExtension
2
+ module ClassMethods
3
+ def build(element, essence_hash)
4
+ definition = content_definition(element, essence_hash)
5
+ super.tap do |content|
6
+ content.searchable = definition.key?(:searchable) ? definition[:searchable] : true
7
+ end
14
8
  end
15
- attributes
9
+
10
+ Alchemy::Content.singleton_class.prepend self
16
11
  end
17
12
 
18
- def searchable_ingredient
19
- case essence_type
20
- when 'Alchemy::EssencePicture'
21
- then essence.caption
22
- when 'Alchemy::EssenceRichtext'
23
- then essence.stripped_body
24
- when 'Alchemy::EssenceText'
25
- then essence.body
26
- else
27
- ingredient
13
+ module InstanceMethods
14
+ def searchable_ingredient
15
+ case essence_type
16
+ when "Alchemy::EssencePicture"
17
+ essence.caption
18
+ when "Alchemy::EssenceRichtext"
19
+ essence.stripped_body
20
+ when "Alchemy::EssenceText"
21
+ essence.body
22
+ else
23
+ ingredient
24
+ end
28
25
  end
26
+
27
+ Alchemy::Content.prepend self
29
28
  end
30
29
  end
@@ -1,40 +1,53 @@
1
1
  Alchemy::Element.class_eval do
2
- include PgSearch
2
+ include PgSearch::Model
3
3
 
4
4
  pg_search_scope :full_text_search,
5
5
  associated_against: {
6
- searchable_essence_texts: :body,
6
+ searchable_essence_texts: :body,
7
7
  searchable_essence_richtexts: :stripped_body,
8
- searchable_essence_pictures: :caption
8
+ searchable_essence_pictures: :caption,
9
9
  },
10
10
  using: {
11
- tsearch: {prefix: true}
11
+ tsearch: { prefix: true },
12
12
  }
13
13
 
14
14
  has_many :searchable_essence_texts,
15
- -> { joins(:element).where(searchable: true, alchemy_elements: {public: true}) },
16
- class_name: 'Alchemy::EssenceText',
17
- source_type: 'Alchemy::EssenceText',
15
+ -> {
16
+ includes(:element)
17
+ .where(alchemy_contents: { searchable: true })
18
+ .where(alchemy_elements: { public: true })
19
+ },
20
+ class_name: "Alchemy::EssenceText",
21
+ source_type: "Alchemy::EssenceText",
18
22
  through: :contents,
19
23
  source: :essence
20
24
 
21
25
  has_many :searchable_essence_richtexts,
22
- -> { joins(:element).where(searchable: true, alchemy_elements: {public: true}) },
23
- class_name: 'Alchemy::EssenceRichtext',
24
- source_type: 'Alchemy::EssenceRichtext',
26
+ -> {
27
+ includes(:element)
28
+ .where(alchemy_contents: { searchable: true })
29
+ .where(alchemy_elements: { public: true })
30
+ },
31
+ class_name: "Alchemy::EssenceRichtext",
32
+ source_type: "Alchemy::EssenceRichtext",
25
33
  through: :contents,
26
34
  source: :essence
27
35
 
28
36
  has_many :searchable_essence_pictures,
29
- -> { joins(:element).where(searchable: true, alchemy_elements: {public: true}) },
30
- class_name: 'Alchemy::EssencePicture',
31
- source_type: 'Alchemy::EssencePicture',
37
+ -> {
38
+ includes(:element)
39
+ .where(alchemy_contents: { searchable: true })
40
+ .where(alchemy_elements: { public: true })
41
+ },
42
+ class_name: "Alchemy::EssencePicture",
43
+ source_type: "Alchemy::EssencePicture",
32
44
  through: :contents,
33
45
  source: :essence
34
46
 
35
47
  has_many :searchable_contents,
36
- -> { where(essence_type: ['Alchemy::EssenceText', 'Alchemy::EssenceRichtext', 'Alchemy::EssencePicture']) },
37
- class_name: 'Alchemy::Content',
48
+ -> {
49
+ where(essence_type: Alchemy::PgSearch::SEARCHABLE_ESSENCES.map { |k| "Alchemy::#{k}" })
50
+ },
51
+ class_name: "Alchemy::Content",
38
52
  source: :contents
39
-
40
53
  end
@@ -1,25 +1,19 @@
1
- require 'alchemy_cms'
2
- require 'pg_search'
1
+ require "alchemy_cms"
2
+ require "pg_search"
3
3
 
4
4
  module Alchemy
5
5
  module PgSearch
6
6
  class Engine < ::Rails::Engine
7
- engine_name 'alchemy_pg_search'
7
+ engine_name "alchemy_pg_search"
8
8
 
9
9
  config.to_prepare do
10
10
  require_relative "./content_extension"
11
- require_relative './controller_methods'
11
+ require_relative "./controller_methods"
12
12
  require_relative "./element_extension"
13
13
  require_relative "./page_extension"
14
- require_relative './searchable'
15
14
 
16
15
  # We need to have the search methods present in all Alchemy controllers
17
16
  Alchemy::BaseController.send(:include, Alchemy::PgSearch::ControllerMethods)
18
-
19
- # Inject searchable attribute persistence into searchable essence classes
20
- Alchemy::PgSearch.searchable_essence_classes.each do |klass|
21
- klass.send(:include, Alchemy::PgSearch::Searchable)
22
- end
23
17
  end
24
18
  end
25
19
  end
@@ -1,41 +1,54 @@
1
1
  Alchemy::Page.class_eval do
2
- include PgSearch
2
+ include PgSearch::Model
3
3
 
4
4
  # Enable Postgresql full text indexing.
5
5
  #
6
- pg_search_scope :full_text_search, against: {
7
- meta_description: 'B',
8
- meta_keywords: 'B',
9
- title: 'B',
10
- name: 'A'
6
+ pg_search_scope :full_text_search,
7
+ against: {
8
+ meta_description: "B",
9
+ meta_keywords: "B",
10
+ title: "B",
11
+ name: "A",
11
12
  },
12
13
  associated_against: {
13
- searchable_essence_texts: :body,
14
+ searchable_essence_texts: :body,
14
15
  searchable_essence_richtexts: :stripped_body,
15
- searchable_essence_pictures: :caption
16
+ searchable_essence_pictures: :caption,
16
17
  },
17
18
  using: {
18
- tsearch: {prefix: true}
19
+ tsearch: { prefix: true },
19
20
  }
20
21
 
21
22
  has_many :searchable_essence_texts,
22
- -> { where(searchable: true, alchemy_elements: {public: true}) },
23
- class_name: 'Alchemy::EssenceText',
24
- source_type: 'Alchemy::EssenceText',
23
+ -> {
24
+ includes(:element)
25
+ .where(alchemy_contents: { searchable: true })
26
+ .where(alchemy_elements: { public: true })
27
+ },
28
+ class_name: "Alchemy::EssenceText",
29
+ source_type: "Alchemy::EssenceText",
25
30
  through: :descendent_contents,
26
31
  source: :essence
27
32
 
28
33
  has_many :searchable_essence_richtexts,
29
- -> { where(searchable: true, alchemy_elements: {public: true}) },
30
- class_name: 'Alchemy::EssenceRichtext',
31
- source_type: 'Alchemy::EssenceRichtext',
34
+ -> {
35
+ includes(:element)
36
+ .where(alchemy_contents: { searchable: true })
37
+ .where(alchemy_elements: { public: true })
38
+ },
39
+ class_name: "Alchemy::EssenceRichtext",
40
+ source_type: "Alchemy::EssenceRichtext",
32
41
  through: :descendent_contents,
33
42
  source: :essence
34
43
 
35
44
  has_many :searchable_essence_pictures,
36
- -> { where(searchable: true, alchemy_elements: {public: true}) },
37
- class_name: 'Alchemy::EssencePicture',
38
- source_type: 'Alchemy::EssencePicture',
45
+ -> {
46
+ includes(:element)
47
+ .where(alchemy_contents: { searchable: true })
48
+ .where(alchemy_elements: { public: true })
49
+ },
50
+ class_name: "Alchemy::EssencePicture",
51
+ source_type: "Alchemy::EssencePicture",
39
52
  through: :descendent_contents,
40
53
  source: :essence
41
54
 
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
2
  module PgSearch
3
- VERSION = "1.2.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
@@ -4,9 +4,9 @@ require "alchemy/pg_search/page_search_scope"
4
4
 
5
5
  module Alchemy
6
6
  module PgSearch
7
- SEARCHABLE_ESSENCES = %w(EssenceText EssenceRichtext EssencePicture)
7
+ SEARCHABLE_ESSENCES = %w[EssenceText EssenceRichtext EssencePicture]
8
8
  DEFAULT_CONFIG = {
9
- page_search_scope: PageSearchScope.new
9
+ page_search_scope: PageSearchScope.new,
10
10
  }
11
11
 
12
12
  extend Config
metadata CHANGED
@@ -1,49 +1,49 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy-pg_search
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-28 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: alchemy_cms
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.2'
19
+ version: '4.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '4.0'
22
+ version: '5.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ">"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '3.2'
29
+ version: '4.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '4.0'
32
+ version: '5.0'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: pg_search
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.7'
39
+ version: '2.1'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.7'
46
+ version: '2.1'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: pg
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -62,16 +62,16 @@ dependencies:
62
62
  name: bundler
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '1.3'
67
+ version: '0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '1.3'
74
+ version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rake
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -100,9 +100,9 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
- description: PostgreSQL search for Alchemy CMS 3.0
103
+ description: PostgreSQL search for Alchemy CMS 4.0
104
104
  email:
105
- - alchemy@magiclabs.de
105
+ - thomas@vondeyen.com
106
106
  executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files: []
@@ -120,11 +120,13 @@ files:
120
120
  - app/views/alchemy/search/_result.html.erb
121
121
  - app/views/alchemy/search/_results.html.erb
122
122
  - bin/rails
123
+ - bin/rspec
123
124
  - config/locales/alchemy.search.de.yml
124
125
  - config/locales/alchemy.search.en.yml
125
126
  - db/migrate/20141211105526_add_searchable_to_alchemy_essence_texts.rb
126
127
  - db/migrate/20141211105942_add_searchable_to_alchemy_essence_richtexts.rb
127
128
  - db/migrate/20141211110126_add_searchable_to_alchemy_essence_pictures.rb
129
+ - db/migrate/20210923081905_move_searchable_to_contents.rb
128
130
  - lib/alchemy-pg_search.rb
129
131
  - lib/alchemy/pg_search/config.rb
130
132
  - lib/alchemy/pg_search/content_extension.rb
@@ -133,17 +135,16 @@ files:
133
135
  - lib/alchemy/pg_search/engine.rb
134
136
  - lib/alchemy/pg_search/page_extension.rb
135
137
  - lib/alchemy/pg_search/page_search_scope.rb
136
- - lib/alchemy/pg_search/searchable.rb
137
138
  - lib/alchemy/pg_search/version.rb
138
139
  - lib/generators/alchemy/pg_search/upgrade/templates/migration.rb.tt
139
140
  - lib/generators/alchemy/pg_search/upgrade/upgrade_generator.rb
140
141
  - lib/generators/alchemy/pg_search/views/views_generator.rb
141
142
  - lib/tasks/alchemy/pg_search_tasks.rake
142
- homepage: http://alchemy-cms.com
143
+ homepage: https://alchemy-cms.com
143
144
  licenses:
144
- - BSD
145
+ - BSD-3-Clause
145
146
  metadata: {}
146
- post_install_message:
147
+ post_install_message:
147
148
  rdoc_options: []
148
149
  require_paths:
149
150
  - lib
@@ -158,9 +159,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
159
  - !ruby/object:Gem::Version
159
160
  version: '0'
160
161
  requirements: []
161
- rubyforge_project:
162
- rubygems_version: 2.7.6
163
- signing_key:
162
+ rubygems_version: 3.2.27
163
+ signing_key:
164
164
  specification_version: 4
165
- summary: This gem provides PostgreSQL full text search to Alchemy 3.0
165
+ summary: This gem provides PostgreSQL full text search to Alchemy 4.0
166
166
  test_files: []
@@ -1,27 +0,0 @@
1
- module Alchemy
2
- module PgSearch
3
-
4
- # Ensures that the current content definition value for +searchable+ gets persisted.
5
- #
6
- # It is enabled per default, but you can disable indexing in your +elements.yml+ file.
7
- #
8
- # === Example
9
- #
10
- # name: secrets
11
- # contents:
12
- # - name: confidential
13
- # type: EssenceRichtext
14
- # searchable: false
15
- #
16
- module Searchable
17
- extend ActiveSupport::Concern
18
-
19
- included do
20
- before_update do
21
- write_attribute(:searchable, definition.fetch('searchable', true))
22
- true
23
- end
24
- end
25
- end
26
- end
27
- end