pg_search 2.2.0 → 2.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -0
  3. data/.editorconfig +10 -0
  4. data/.github/dependabot.yml +11 -0
  5. data/.rubocop.yml +88 -7
  6. data/.travis.yml +11 -19
  7. data/CHANGELOG.md +40 -15
  8. data/Gemfile +1 -1
  9. data/LICENSE +1 -1
  10. data/README.md +46 -45
  11. data/lib/pg_search.rb +13 -56
  12. data/lib/pg_search/document.rb +2 -2
  13. data/lib/pg_search/features/dmetaphone.rb +4 -6
  14. data/lib/pg_search/features/tsearch.rb +13 -12
  15. data/lib/pg_search/migration/templates/add_pg_search_dmetaphone_support_functions.rb.erb +6 -6
  16. data/lib/pg_search/migration/templates/create_pg_search_documents.rb.erb +2 -2
  17. data/lib/pg_search/model.rb +57 -0
  18. data/lib/pg_search/multisearch.rb +10 -1
  19. data/lib/pg_search/multisearch/rebuilder.rb +7 -3
  20. data/lib/pg_search/scope_options.rb +2 -2
  21. data/lib/pg_search/tasks.rb +2 -1
  22. data/lib/pg_search/version.rb +1 -1
  23. data/pg_search.gemspec +9 -5
  24. data/spec/.rubocop.yml +2 -2
  25. data/spec/integration/.rubocop.yml +11 -0
  26. data/spec/integration/associations_spec.rb +27 -66
  27. data/spec/integration/deprecation_spec.rb +33 -0
  28. data/spec/integration/pagination_spec.rb +1 -1
  29. data/spec/integration/pg_search_spec.rb +70 -59
  30. data/spec/integration/single_table_inheritance_spec.rb +2 -2
  31. data/spec/lib/pg_search/configuration/association_spec.rb +10 -8
  32. data/spec/lib/pg_search/configuration/foreign_column_spec.rb +1 -1
  33. data/spec/lib/pg_search/features/dmetaphone_spec.rb +2 -2
  34. data/spec/lib/pg_search/features/trigram_spec.rb +15 -11
  35. data/spec/lib/pg_search/features/tsearch_spec.rb +16 -10
  36. data/spec/lib/pg_search/multisearch/rebuilder_spec.rb +124 -76
  37. data/spec/lib/pg_search/multisearch_spec.rb +49 -30
  38. data/spec/lib/pg_search/multisearchable_spec.rb +155 -101
  39. data/spec/lib/pg_search/normalizer_spec.rb +12 -10
  40. data/spec/lib/pg_search_spec.rb +59 -46
  41. data/spec/spec_helper.rb +13 -4
  42. data/spec/support/database.rb +1 -1
  43. metadata +76 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 292701a98892eef31e95d8b5d723e94ce71fd47e4956e8bed595b8f87797f49c
4
- data.tar.gz: cc08372ce5c032e288c28b2f6409c218d361b271fc271de08acbe8e5430c8dcb
3
+ metadata.gz: a217bfd36241c2a3b7e9d496fbcafcda084f0ab87c50baaee487ed3ad1349774
4
+ data.tar.gz: 2adb9c974d6b1d00fbf89be865c1901e759de8956daa8b5795407a51468abc6e
5
5
  SHA512:
6
- metadata.gz: e95e7240968269703ae6d010639f2b4380e7616962c7a07f4932ad5e21c77affae6ea3c90e9a8171641a506988fa076ecdb30224f2b081d1468fb13618713d2e
7
- data.tar.gz: 4910a636f53e444c3995e0ca728bd21475d11347d8a4d8223a1e881f3360bf8dc7e4f5689bd05cc559dad106a08b077abda1b3f50c6108221e4dbf75c4d73ffa
6
+ metadata.gz: 16e3c8d3a801a3e2cee0a38b42de4ce5d74142c08be3908fbc733b591312047df33e4ec0101d7e2029646d4476d9875146d64bed90cb3492bd921967462eee01
7
+ data.tar.gz: 0d5507703452f0b8607d2bb3ea355375ab88dcbf99fdc8239fe0a255820ad782e3d7ecd9101f28bde9f2df2c092aa323cb1c7d23c6460bd967b070efde4a33a8
@@ -9,6 +9,7 @@ engines:
9
9
  enabled: true
10
10
  rubocop:
11
11
  enabled: true
12
+ channel: rubocop-0-78
12
13
  ratings:
13
14
  paths:
14
15
  - "**.rb"
@@ -0,0 +1,10 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ end_of_line = lf
7
+ insert_final_newline = true
8
+ charset = utf-8
9
+ indent_style = space
10
+ indent_size = 2
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "bundler" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "daily"
@@ -1,7 +1,12 @@
1
- require: rubocop-performance
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rails
4
+ - rubocop-rake
5
+ - rubocop-rspec
2
6
 
3
7
  AllCops:
4
- TargetRubyVersion: 2.4
8
+ TargetRubyVersion: 2.5
9
+ NewCops: enable
5
10
  Exclude:
6
11
  - bin/**/*
7
12
  - vendor/**/*
@@ -9,17 +14,17 @@ AllCops:
9
14
  Style/StringLiterals:
10
15
  Enabled: false
11
16
 
12
- Metrics/LineLength:
17
+ Layout/LineLength:
13
18
  Max: 120
14
19
 
15
20
  Metrics/MethodLength:
16
- Max: 21
21
+ Max: 15
17
22
 
18
23
  Metrics/BlockLength:
19
24
  Exclude:
20
25
  - spec/**/*
21
26
 
22
- Layout/AlignParameters:
27
+ Layout/ParameterAlignment:
23
28
  EnforcedStyle: with_fixed_indentation
24
29
 
25
30
  Style/NumericPredicate:
@@ -44,8 +49,8 @@ Bundler/DuplicatedGem:
44
49
 
45
50
  Style/EmptyMethod:
46
51
  EnforcedStyle: expanded
47
-
48
- Layout/IndentFirstArrayElement:
52
+
53
+ Layout/FirstArrayElementIndentation:
49
54
  EnforcedStyle: consistent
50
55
 
51
56
  Style/Documentation:
@@ -54,3 +59,79 @@ Style/Documentation:
54
59
  Style/WordArray:
55
60
  EnforcedStyle: percent
56
61
  MinSize: 3
62
+
63
+ Style/HashEachMethods:
64
+ Enabled: true
65
+
66
+ Style/HashTransformKeys:
67
+ Enabled: true
68
+
69
+ Style/HashTransformValues:
70
+ Enabled: true
71
+
72
+ Rails/ApplicationRecord:
73
+ Enabled: false
74
+
75
+ Rails/TimeZone:
76
+ Enabled: false
77
+
78
+ RSpec/ContextWording:
79
+ Prefixes:
80
+ - using
81
+ - via
82
+ - when
83
+ - with
84
+ - without
85
+
86
+ Lint/RaiseException:
87
+ Enabled: true
88
+
89
+ Lint/StructNewOverride:
90
+ Enabled: true
91
+
92
+ Layout/SpaceAroundMethodCallOperator:
93
+ Enabled: true
94
+
95
+ Style/ExponentialNotation:
96
+ Enabled: true
97
+
98
+ RSpec/DescribedClass:
99
+ Enabled: true
100
+
101
+ RSpec/ExpectInHook:
102
+ Enabled: false
103
+
104
+ RSpec/FilePath:
105
+ CustomTransform:
106
+ TSearch: "tsearch"
107
+ DMetaphone: "dmetaphone"
108
+
109
+ Layout/EmptyLinesAroundAttributeAccessor:
110
+ Enabled: true
111
+
112
+ Lint/DeprecatedOpenSSLConstant:
113
+ Enabled: true
114
+
115
+ Style/SlicingWithRange:
116
+ Enabled: true
117
+
118
+ Lint/MixedRegexpCaptureTypes:
119
+ Enabled: true
120
+
121
+ Style/RedundantFetchBlock:
122
+ Enabled: true
123
+
124
+ Style/RedundantRegexpCharacterClass:
125
+ Enabled: true
126
+
127
+ Style/RedundantRegexpEscape:
128
+ Enabled: true
129
+
130
+ RSpec/MultipleExpectations:
131
+ Max: 5
132
+
133
+ RSpec/MultipleMemoizedHelpers:
134
+ AllowSubject: true
135
+
136
+ RSpec/ExampleLength:
137
+ Max: 15
@@ -1,38 +1,27 @@
1
1
  language: ruby
2
- sudo: false
3
2
  bundler_args: --binstubs
4
3
  cache: bundler
5
4
 
6
5
  rvm:
7
- - 2.6.3
8
- - 2.5.5
9
- - 2.4.6
10
- - jruby-9.2.6.0
6
+ - 2.7.2
7
+ - 2.6.6
8
+ - 2.5.8
9
+ - jruby-9.2.11.1
11
10
 
12
11
  env:
13
12
  global:
14
13
  - CC_TEST_REPORTER_ID=0a0e3e45118bc447e677d52c21d056a5471c4921d54f96ed7b2550d9fc5043ea
15
14
  matrix:
16
15
  - ACTIVE_RECORD_BRANCH="master"
17
- - ACTIVE_RECORD_BRANCH="5-2-stable"
18
- - ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
16
+ - ACTIVE_RECORD_BRANCH="6-0-stable"
17
+ - ACTIVE_RECORD_VERSION="~> 6.0.0"
19
18
  - ACTIVE_RECORD_VERSION="~> 5.2.0"
20
- - ACTIVE_RECORD_VERSION="~> 5.1.0"
21
- - ACTIVE_RECORD_VERSION="~> 5.0.0"
22
- - ACTIVE_RECORD_VERSION="~> 4.2.9"
19
+
23
20
 
24
21
  matrix:
25
22
  allow_failures:
26
23
  - env: ACTIVE_RECORD_BRANCH="master"
27
- - env: ACTIVE_RECORD_BRANCH="5-2-stable"
28
- - env: ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
29
- exclude:
30
- - rvm: 2.4.6
31
- env: ACTIVE_RECORD_BRANCH="master"
32
- - rvm: jruby-9.2.6.0
33
- env: ACTIVE_RECORD_VERSION="~> 4.2.9"
34
- - rvm: 2.4.5
35
- env: ACTIVE_RECORD_VERSION="~> 6.0.0.beta1"
24
+ - env: ACTIVE_RECORD_BRANCH="6-0-stable"
36
25
 
37
26
  before_script:
38
27
  - psql --version
@@ -46,5 +35,8 @@ script: bin/rake
46
35
  after_script:
47
36
  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
48
37
 
38
+ jdk:
39
+ - openjdk8
40
+
49
41
  addons:
50
42
  postgresql: "9.6"
@@ -1,47 +1,72 @@
1
1
  # pg_search changelog
2
2
 
3
+ ## 2.3.4
4
+
5
+ * Fix issue when setting various options directly on the `PgSearch` module while
6
+ running with a threaded web server, such as Puma. (Anton Rieder)
7
+
8
+ ## 2.3.3
9
+
10
+ * Drop support for Ruby < 2.5.
11
+ * Use keyword argument for `clean_up` setting in `PgSearch::Multisearch.rebuild`.
12
+
13
+ ## 2.3.2
14
+
15
+ * Autoload `PgSearch::Document` to prevent it from being loaded in projects that are not using multi-search.
16
+ * Rebuilder should use `update_pg_search_document` if `additional_attributes` is set. (David Ramalho)
17
+
18
+ ## 2.3.1
19
+
20
+ * Drop support for Active Record < 5.2.
21
+ * Do not load railtie unless Rails::Railtie is defined, to avoid problem when loading alongside Action Mailer. (Adam Schwartz)
22
+
23
+ ## 2.3.0
24
+
25
+ * Extract `PgSearch::Model` module.
26
+ * Deprecate `include PgSearch`. Use `include PgSearch::Model` instead.
27
+
3
28
  ## 2.2.0
4
29
 
5
- * Add word_similarity option to trigram search (Severin Räz)
30
+ * Add `word_similarity` option to trigram search. (Severin Räz)
6
31
 
7
32
  ## 2.1.7
8
33
 
9
- * Restore link to GitHub repository to original location
34
+ * Restore link to GitHub repository to original location.
10
35
 
11
36
  ## 2.1.6
12
37
 
13
- * Update link to GitHub repository to new location
38
+ * Update link to GitHub repository to new location.
14
39
 
15
40
  ## 2.1.5
16
41
 
17
- * Drop support for Ruby < 2.4
42
+ * Drop support for Ruby < 2.4.
18
43
 
19
44
  ## 2.1.4
20
45
 
21
- * Drop support for Ruby < 2.3
22
- * Use update instead of deprecated update_attributes
23
- * Remove explicit arel dependency to better support Active Record 6 beta
46
+ * Drop support for Ruby < 2.3.
47
+ * Use `update` instead of deprecated `update_attributes`.
48
+ * Remove explicit Arel dependency to better support Active Record 6 beta.
24
49
 
25
50
  ## 2.1.3
26
51
 
27
52
  * Drop support for Ruby < 2.2
28
- * Disallow left/right single quotation marks in tsquery (Fabian Schwahn) (#382)
29
- * Do not attempt to save an already-destroy PgSearch::Document (Oleg Dashevskii, Vokhmin Aleksei V) (#353)
30
- * Quote column name when rebuilding (Jed Levin) (#379)
53
+ * Disallow left/right single quotation marks in tsquery. (Fabian Schwahn) (#382)
54
+ * Do not attempt to save an already-destroyed `PgSearch::Document`. (Oleg Dashevskii, Vokhmin Aleksei V) (#353)
55
+ * Quote column name when rebuilding. (Jed Levin) (#379)
31
56
 
32
57
  ## 2.1.2
33
58
 
34
- * Silence warnings in Rails 5.2.0.beta2 (Kevin Deisz)
59
+ * Silence warnings in Rails 5.2.0.beta2. (Kevin Deisz)
35
60
 
36
61
  ## 2.1.1
37
62
 
38
- * Support snake_case ts_headline options again (with deprecation warning)
63
+ * Support snake_case `ts_headline` options again. (with deprecation warning)
39
64
 
40
65
  ## 2.1.0
41
66
 
42
- * Allow ts_headline options to be passed to :highlight (Ian Heisters)
43
- * Wait to load PgSearch::Document until after Active Record has loaded (Logan Leger)
44
- * Add Rails version to generated migrations (Erik Eide)
67
+ * Allow `ts_headline` options to be passed to `:highlight`. (Ian Heisters)
68
+ * Wait to load `PgSearch::Document` until after Active Record has loaded. (Logan Leger)
69
+ * Add Rails version to generated migrations. (Erik Eide)
45
70
 
46
71
  ## 2.0.1
47
72
 
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- gem 'pg', '>= 0.21.0', '< 1.0.0', platform: :ruby
7
+ gem 'pg', '>= 0.21.0', platform: :ruby
8
8
  gem "activerecord-jdbcpostgresql-adapter", ">= 1.3.1", platform: :jruby
9
9
 
10
10
  if ENV['ACTIVE_RECORD_BRANCH']
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2019 Casebook, PBC <http://www.casebook.net>
1
+ Copyright (c) 2010-2020 Casebook, PBC <http://www.casebook.net>
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -16,8 +16,8 @@ Read the blog post introducing PgSearch at https://content.pivotal.io/blog/pg-se
16
16
 
17
17
  ## REQUIREMENTS
18
18
 
19
- * Ruby 2.4+
20
- * ActiveRecord 4.2+
19
+ * Ruby 2.5+
20
+ * ActiveRecord 5.2+
21
21
  * PostgreSQL 9.2+
22
22
  * [PostgreSQL extensions](https://github.com/Casecommons/pg_search/wiki/Installing-PostgreSQL-Extensions) for certain features
23
23
 
@@ -49,7 +49,7 @@ To add PgSearch to an Active Record model, simply include the PgSearch module.
49
49
 
50
50
  ```ruby
51
51
  class Shape < ActiveRecord::Base
52
- include PgSearch
52
+ include PgSearch::Model
53
53
  end
54
54
  ```
55
55
 
@@ -87,12 +87,12 @@ multisearchable in its class definition.
87
87
 
88
88
  ```ruby
89
89
  class EpicPoem < ActiveRecord::Base
90
- include PgSearch
90
+ include PgSearch::Model
91
91
  multisearchable against: [:title, :author]
92
92
  end
93
93
 
94
94
  class Flower < ActiveRecord::Base
95
- include PgSearch
95
+ include PgSearch::Model
96
96
  multisearchable against: :color
97
97
  end
98
98
  ```
@@ -112,13 +112,13 @@ particular record should be included.
112
112
 
113
113
  ```ruby
114
114
  class Convertible < ActiveRecord::Base
115
- include PgSearch
115
+ include PgSearch::Model
116
116
  multisearchable against: [:make, :model],
117
117
  if: :available_in_red?
118
118
  end
119
119
 
120
120
  class Jalopy < ActiveRecord::Base
121
- include PgSearch
121
+ include PgSearch::Model
122
122
  multisearchable against: [:make, :model],
123
123
  if: lambda { |record| record.model_year > 1970 }
124
124
  end
@@ -132,7 +132,7 @@ timestamp.
132
132
 
133
133
  ```ruby
134
134
  class AntipatternExample
135
- include PgSearch
135
+ include PgSearch::Model
136
136
  multisearchable against: [:contents],
137
137
  if: :published?
138
138
 
@@ -175,15 +175,17 @@ multisearchable(
175
175
 
176
176
  **Specify additional attributes to be saved on the pg_search_documents table**
177
177
 
178
- You can specify `:additional_attributes` to be saved within the pg_search_documents table. For example, perhaps you are indexing a book model and an article model and wanted to include the author_id.
178
+ You can specify `:additional_attributes` to be saved within the `pg_search_documents` table. For example, perhaps you are indexing a book model and an article model and wanted to include the author_id.
179
179
 
180
- First, we need to add `author_id` to the migration creating our pg_search_documents table.
180
+ First, we need to add a reference to author to the migration creating our `pg_search_documents` table.
181
181
 
182
182
  ```ruby
183
183
  create_table :pg_search_documents do |t|
184
- t.text :content
185
- t.integer :author_id
186
- t.belongs_to :searchable, polymorphic: true, index: true
184
+ t.text :content
185
+ t.references :author, index: true
186
+ t.belongs_to :searchable, polymorphic: true, index: true
187
+ t.timestamps null: false
188
+ end
187
189
  ```
188
190
 
189
191
  Then, we can send in this additional attribute in a lambda
@@ -196,7 +198,10 @@ Then, we can send in this additional attribute in a lambda
196
198
  ```
197
199
 
198
200
  This allows much faster searches without joins later on by doing something like:
199
- `PgSearch.multisearch(params['search']).where(author_id: 2)`
201
+
202
+ ```ruby
203
+ PgSearch.multisearch(params['search']).where(author_id: 2)
204
+ ```
200
205
 
201
206
  *NOTE: You must currently manually call `record.update_pg_search_document` for the additional attribute to be included in the pg_search_documents table*
202
207
 
@@ -289,7 +294,7 @@ is your base class. You can prevent ```rebuild``` from deleting your records
289
294
  like so:
290
295
 
291
296
  ```ruby
292
- PgSearch::Multisearch.rebuild(Product, false)
297
+ PgSearch::Multisearch.rebuild(Product, clean_up: false)
293
298
  ```
294
299
 
295
300
  Rebuild is also available as a Rake task, for convenience.
@@ -333,7 +338,7 @@ class Movie < ActiveRecord::Base
333
338
 
334
339
  # More sophisticated approach
335
340
  def self.rebuild_pg_search_documents
336
- connection.execute <<-SQL
341
+ connection.execute <<~SQL.squish
337
342
  INSERT INTO pg_search_documents (searchable_type, searchable_id, content, created_at, updated_at)
338
343
  SELECT 'Movie' AS searchable_type,
339
344
  movies.id AS searchable_id,
@@ -374,7 +379,7 @@ To search against a column, pass a symbol as the :against option.
374
379
 
375
380
  ```ruby
376
381
  class BlogPost < ActiveRecord::Base
377
- include PgSearch
382
+ include PgSearch::Model
378
383
  pg_search_scope :search_by_title, against: :title
379
384
  end
380
385
  ```
@@ -394,7 +399,7 @@ Just pass an Array if you'd like to search more than one column.
394
399
 
395
400
  ```ruby
396
401
  class Person < ActiveRecord::Base
397
- include PgSearch
402
+ include PgSearch::Model
398
403
  pg_search_scope :search_by_full_name, against: [:first_name, :last_name]
399
404
  end
400
405
  ```
@@ -421,7 +426,7 @@ value if you wanted.
421
426
 
422
427
  ```ruby
423
428
  class Person < ActiveRecord::Base
424
- include PgSearch
429
+ include PgSearch::Model
425
430
  pg_search_scope :search_by_name, lambda { |name_part, query|
426
431
  raise ArgumentError unless [:first, :last].include?(name_part)
427
432
  {
@@ -459,7 +464,7 @@ class Cheese < ActiveRecord::Base
459
464
  end
460
465
 
461
466
  class Salami < ActiveRecord::Base
462
- include PgSearch
467
+ include PgSearch::Model
463
468
 
464
469
  belongs_to :cracker
465
470
  has_many :cheeses, through: :cracker
@@ -494,7 +499,7 @@ search techniques.
494
499
 
495
500
  ```ruby
496
501
  class Beer < ActiveRecord::Base
497
- include PgSearch
502
+ include PgSearch::Model
498
503
  pg_search_scope :search_name, against: :name, using: [:tsearch, :trigram, :dmetaphone]
499
504
  end
500
505
  ```
@@ -520,7 +525,7 @@ subtitle, and finally the content.
520
525
 
521
526
  ```ruby
522
527
  class NewsArticle < ActiveRecord::Base
523
- include PgSearch
528
+ include PgSearch::Model
524
529
  pg_search_scope :search_full_text, against: {
525
530
  title: 'A',
526
531
  subtitle: 'B',
@@ -535,7 +540,7 @@ weight. If you omit the weight, a default will be used.
535
540
 
536
541
  ```ruby
537
542
  class NewsArticle < ActiveRecord::Base
538
- include PgSearch
543
+ include PgSearch::Model
539
544
  pg_search_scope :search_full_text, against: [
540
545
  [:title, 'A'],
541
546
  [:subtitle, 'B'],
@@ -544,7 +549,7 @@ class NewsArticle < ActiveRecord::Base
544
549
  end
545
550
 
546
551
  class NewsArticle < ActiveRecord::Base
547
- include PgSearch
552
+ include PgSearch::Model
548
553
  pg_search_scope :search_full_text, against: [
549
554
  [:title, 'A'],
550
555
  {subtitle: 'B'},
@@ -562,7 +567,7 @@ shown in the following example.
562
567
 
563
568
  ```ruby
564
569
  class Superhero < ActiveRecord::Base
565
- include PgSearch
570
+ include PgSearch::Model
566
571
  pg_search_scope :whose_name_starts_with,
567
572
  against: :name,
568
573
  using: {
@@ -591,7 +596,7 @@ term that you were trying to exclude.
591
596
 
592
597
  ```ruby
593
598
  class Animal < ActiveRecord::Base
594
- include PgSearch
599
+ include PgSearch::Model
595
600
  pg_search_scope :with_name_matching,
596
601
  against: :name,
597
602
  using: {
@@ -620,7 +625,7 @@ dictionary will be used.
620
625
 
621
626
  ```ruby
622
627
  class BoringTweet < ActiveRecord::Base
623
- include PgSearch
628
+ include PgSearch::Model
624
629
  pg_search_scope :kinda_matching,
625
630
  against: :text,
626
631
  using: {
@@ -664,7 +669,7 @@ their numbers together.
664
669
 
665
670
  ```ruby
666
671
  class BigLongDocument < ActiveRecord::Base
667
- include PgSearch
672
+ include PgSearch::Model
668
673
  pg_search_scope :regular_search,
669
674
  against: :text
670
675
 
@@ -688,7 +693,7 @@ models containing any word in the search terms.
688
693
 
689
694
  ```ruby
690
695
  class Number < ActiveRecord::Base
691
- include PgSearch
696
+ include PgSearch::Model
692
697
  pg_search_scope :search_any_word,
693
698
  against: :text,
694
699
  using: {
@@ -714,11 +719,11 @@ but will not include it in the query's WHERE condition.
714
719
 
715
720
  ```ruby
716
721
  class Person < ActiveRecord::Base
717
- include PgSearch
722
+ include PgSearch::Model
718
723
  pg_search_scope :search,
719
724
  against: :name,
720
725
  using: {
721
- tsearch: {any_word: true}
726
+ tsearch: {any_word: true},
722
727
  dmetaphone: {any_word: true, sort_only: true}
723
728
  }
724
729
  end
@@ -739,7 +744,7 @@ Adding .with_pg_search_highlight after the pg_search_scope you can access to
739
744
 
740
745
  ```ruby
741
746
  class Person < ActiveRecord::Base
742
- include PgSearch
747
+ include PgSearch::Model
743
748
  pg_search_scope :search,
744
749
  against: :bio,
745
750
  using: {
@@ -793,7 +798,7 @@ The following example shows how to use :dmetaphone.
793
798
 
794
799
  ```ruby
795
800
  class Word < ActiveRecord::Base
796
- include PgSearch
801
+ include PgSearch::Model
797
802
  pg_search_scope :that_sounds_like,
798
803
  against: :spelling,
799
804
  using: :dmetaphone
@@ -824,7 +829,7 @@ feature can be used.
824
829
 
825
830
  ```ruby
826
831
  class Website < ActiveRecord::Base
827
- include PgSearch
832
+ include PgSearch::Model
828
833
  pg_search_scope :kinda_spelled_like,
829
834
  against: :name,
830
835
  using: :trigram
@@ -849,7 +854,7 @@ threshold will force a table scan as the derived query uses the
849
854
 
850
855
  ```ruby
851
856
  class Vegetable < ActiveRecord::Base
852
- include PgSearch
857
+ include PgSearch::Model
853
858
 
854
859
  pg_search_scope :strictly_spelled_like,
855
860
  against: :name,
@@ -887,10 +892,10 @@ and the word with greatest similarity.
887
892
 
888
893
  ```ruby
889
894
  class Sentence < ActiveRecord::Base
890
- include PgSearch
895
+ include PgSearch::Model
891
896
 
892
897
  pg_search_scope :similarity_like,
893
- against: :words,
898
+ against: :name,
894
899
  using: {
895
900
  trigram: {
896
901
  word_similarity: true
@@ -898,7 +903,7 @@ class Sentence < ActiveRecord::Base
898
903
  }
899
904
 
900
905
  pg_search_scope :word_similarity_like,
901
- against: :words,
906
+ against: :name,
902
907
  using: [:trigram]
903
908
  end
904
909
 
@@ -918,7 +923,7 @@ which fields using the 'only' option:
918
923
 
919
924
  ```ruby
920
925
  class Image < ActiveRecord::Base
921
- include PgSearch
926
+ include PgSearch::Model
922
927
 
923
928
  pg_search_scope :combined_search,
924
929
  against: [:file_name, :short_description, :long_description]
@@ -953,7 +958,7 @@ must be installed before this feature can be used.
953
958
 
954
959
  ```ruby
955
960
  class SpanishQuestion < ActiveRecord::Base
956
- include PgSearch
961
+ include PgSearch::Model
957
962
  pg_search_scope :gringo_search,
958
963
  against: :word,
959
964
  ignoring: :accents
@@ -1143,15 +1148,11 @@ Patterson](http://tenderlovemaking.com/) for the original version and to Caseboo
1143
1148
 
1144
1149
  ## CONTRIBUTIONS AND FEEDBACK
1145
1150
 
1146
- Welcomed! Feel free to join and contribute to our [public Pivotal Tracker
1147
- project](https://www.pivotaltracker.com/projects/228645) where we manage new
1148
- feature ideas and bugs.
1151
+ Please read our [CONTRIBUTING guide](https://github.com/Casecommons/pg_search/blob/master/CONTRIBUTING.md).
1149
1152
 
1150
1153
  We also have a [Google Group](http://groups.google.com/group/casecommons-dev)
1151
1154
  for discussing pg_search and other Casebook PBC open source projects.
1152
1155
 
1153
- Please read our [CONTRIBUTING guide](https://github.com/Casecommons/pg_search/blob/master/CONTRIBUTING.md).
1154
-
1155
1156
  ## LICENSE
1156
1157
 
1157
1158
  Copyright © 2010–2019 [Casebook PBC](http://www.casebook.net).