alchemy-pg_search 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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