pg_search 2.1.3 → 2.1.4

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -6
  3. data/.travis.yml +12 -3
  4. data/CHANGELOG.md +121 -116
  5. data/Gemfile +2 -0
  6. data/README.md +1 -1
  7. data/Rakefile +2 -0
  8. data/lib/pg_search.rb +5 -3
  9. data/lib/pg_search/configuration.rb +5 -3
  10. data/lib/pg_search/configuration/association.rb +2 -0
  11. data/lib/pg_search/configuration/column.rb +2 -0
  12. data/lib/pg_search/configuration/foreign_column.rb +2 -0
  13. data/lib/pg_search/document.rb +4 -2
  14. data/lib/pg_search/features.rb +2 -0
  15. data/lib/pg_search/features/dmetaphone.rb +2 -0
  16. data/lib/pg_search/features/feature.rb +3 -1
  17. data/lib/pg_search/features/trigram.rb +2 -0
  18. data/lib/pg_search/features/tsearch.rb +2 -0
  19. data/lib/pg_search/migration/dmetaphone_generator.rb +3 -1
  20. data/lib/pg_search/migration/generator.rb +2 -0
  21. data/lib/pg_search/migration/multisearch_generator.rb +2 -1
  22. data/lib/pg_search/multisearch.rb +3 -3
  23. data/lib/pg_search/multisearch/rebuilder.rb +4 -2
  24. data/lib/pg_search/multisearchable.rb +2 -2
  25. data/lib/pg_search/normalizer.rb +2 -0
  26. data/lib/pg_search/railtie.rb +2 -0
  27. data/lib/pg_search/scope_options.rb +8 -6
  28. data/lib/pg_search/tasks.rb +2 -0
  29. data/lib/pg_search/version.rb +3 -1
  30. data/pg_search.gemspec +6 -5
  31. data/spec/integration/associations_spec.rb +9 -7
  32. data/spec/integration/pagination_spec.rb +2 -0
  33. data/spec/integration/pg_search_spec.rb +26 -24
  34. data/spec/integration/single_table_inheritance_spec.rb +2 -1
  35. data/spec/lib/pg_search/configuration/association_spec.rb +5 -3
  36. data/spec/lib/pg_search/configuration/column_spec.rb +2 -0
  37. data/spec/lib/pg_search/configuration/foreign_column_spec.rb +3 -1
  38. data/spec/lib/pg_search/features/dmetaphone_spec.rb +2 -0
  39. data/spec/lib/pg_search/features/trigram_spec.rb +2 -0
  40. data/spec/lib/pg_search/features/tsearch_spec.rb +6 -4
  41. data/spec/lib/pg_search/multisearch/rebuilder_spec.rb +2 -0
  42. data/spec/lib/pg_search/multisearch_spec.rb +2 -0
  43. data/spec/lib/pg_search/multisearchable_spec.rb +8 -6
  44. data/spec/lib/pg_search/normalizer_spec.rb +2 -0
  45. data/spec/lib/pg_search_spec.rb +5 -3
  46. data/spec/spec_helper.rb +2 -0
  47. data/spec/support/database.rb +3 -1
  48. data/spec/support/with_model.rb +2 -0
  49. metadata +6 -23
  50. data/.rubocop_todo.yml +0 -153
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/README.md CHANGED
@@ -17,7 +17,7 @@ Read the blog post introducing PgSearch at https://content.pivotal.io/blog/pg-se
17
17
 
18
18
  ## REQUIREMENTS
19
19
 
20
- * Ruby 2.2+
20
+ * Ruby 2.3+
21
21
  * ActiveRecord 4.2+
22
22
  * PostgreSQL 9.2+
23
23
  * [PostgreSQL extensions](https://github.com/Casecommons/pg_search/wiki/Installing-PostgreSQL-Extensions) for certain features
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  Bundler::GemHelper.install_tasks
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_record"
2
4
  require "active_support/concern"
3
5
  require "active_support/core_ext/module/attribute_accessors"
@@ -25,7 +27,7 @@ module PgSearch
25
27
  options_proc = if options.respond_to?(:call)
26
28
  options
27
29
  elsif options.respond_to?(:merge)
28
- ->(query) { {:query => query}.merge(options) }
30
+ ->(query) { { :query => query }.merge(options) }
29
31
  else
30
32
  raise ArgumentError, 'pg_search_scope expects a Hash or Proc'
31
33
  end
@@ -68,11 +70,11 @@ module PgSearch
68
70
  def method_missing(symbol, *args)
69
71
  case symbol
70
72
  when :pg_search_rank
71
- raise PgSearchRankNotSelected.new unless respond_to?(:pg_search_rank)
73
+ raise PgSearchRankNotSelected unless respond_to?(:pg_search_rank)
72
74
 
73
75
  read_attribute(:pg_search_rank).to_f
74
76
  when :pg_search_highlight
75
- raise PgSearchHighlightNotSelected.new unless respond_to?(:pg_search_highlight)
77
+ raise PgSearchHighlightNotSelected unless respond_to?(:pg_search_highlight)
76
78
 
77
79
  read_attribute(:pg_search_highlight)
78
80
  else
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pg_search/configuration/association"
2
4
  require "pg_search/configuration/column"
3
5
  require "pg_search/configuration/foreign_column"
@@ -17,7 +19,7 @@ module PgSearch
17
19
  def alias(*strings)
18
20
  name = Array(strings).compact.join("_")
19
21
  # By default, PostgreSQL limits names to 32 characters, so we hash and limit to 32 characters.
20
- "pg_search_#{Digest::SHA2.hexdigest(name)}"[0,32]
22
+ "pg_search_#{Digest::SHA2.hexdigest(name)}".first(32)
21
23
  end
22
24
  end
23
25
 
@@ -78,7 +80,7 @@ module PgSearch
78
80
  attr_reader :options
79
81
 
80
82
  def default_options
81
- {:using => :tsearch}
83
+ { :using => :tsearch }
82
84
  end
83
85
 
84
86
  VALID_KEYS = %w[
@@ -87,7 +89,7 @@ module PgSearch
87
89
 
88
90
  VALID_VALUES = {
89
91
  :ignoring => [:accents]
90
- }
92
+ }.freeze
91
93
 
92
94
  def assert_valid_options(options)
93
95
  unless options[:against] || options[:associated_against]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "digest"
2
4
 
3
5
  module PgSearch
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'digest'
2
4
 
3
5
  module PgSearch
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'digest'
2
4
 
3
5
  module PgSearch
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'logger'
2
4
 
3
5
  module PgSearch
@@ -17,10 +19,10 @@ module PgSearch
17
19
  options = if PgSearch.multisearch_options.respond_to?(:call)
18
20
  PgSearch.multisearch_options.call(*args)
19
21
  else
20
- {:query => args.first}.merge(PgSearch.multisearch_options)
22
+ { :query => args.first }.merge(PgSearch.multisearch_options)
21
23
  end
22
24
 
23
- {:against => :content}.merge(options)
25
+ { :against => :content }.merge(options)
24
26
  }
25
27
  end
26
28
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pg_search/features/feature"
2
4
 
3
5
  require "pg_search/features/dmetaphone"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
4
  module Features
3
5
  class DMetaphone
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_support/core_ext/module/delegation"
2
4
  require "active_support/core_ext/hash/keys"
3
5
 
@@ -23,7 +25,7 @@ module PgSearch
23
25
  attr_reader :query, :options, :all_columns, :model, :normalizer
24
26
 
25
27
  def document
26
- columns.map { |column| column.to_sql }.join(" || ' ' || ")
28
+ columns.map(&:to_sql).join(" || ' ' || ")
27
29
  end
28
30
 
29
31
  def columns
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
4
  module Features
3
5
  class Trigram < Feature
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_support/core_ext/module/delegation"
2
4
  require 'active_support/deprecation'
3
5
 
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pg_search/migration/generator'
2
4
 
3
5
  module PgSearch
4
6
  module Migration
5
7
  class DmetaphoneGenerator < Generator
6
8
  def migration_name
7
- 'add_pg_search_dmetaphone_support_functions'.freeze
9
+ 'add_pg_search_dmetaphone_support_functions'
8
10
  end
9
11
  end
10
12
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'active_record'
2
4
  require 'rails/generators/base'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'pg_search/migration/generator'
2
4
 
3
5
  module PgSearch
@@ -9,4 +11,3 @@ module PgSearch
9
11
  end
10
12
  end
11
13
  end
12
-
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "pg_search/multisearch/rebuilder"
2
4
 
3
5
  module PgSearch
4
6
  module Multisearch
5
7
  class << self
6
- def rebuild(model, clean_up=true)
8
+ def rebuild(model, clean_up = true)
7
9
  model.transaction do
8
10
  PgSearch::Document.where(:searchable_type => model.base_class.name).delete_all if clean_up
9
11
  Rebuilder.new(model).rebuild
@@ -22,5 +24,3 @@ module PgSearch
22
24
  end
23
25
  end
24
26
  end
25
-
26
-
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
4
  module Multisearch
3
5
  class Rebuilder
4
6
  def initialize(model, time_source = Time.method(:now))
5
- raise ModelNotMultisearchable.new(model) unless model.respond_to?(:pg_search_multisearchable_options)
7
+ raise ModelNotMultisearchable, model unless model.respond_to?(:pg_search_multisearchable_options)
6
8
 
7
9
  @model = model
8
10
  @time_source = time_source
@@ -12,7 +14,7 @@ module PgSearch
12
14
  if model.respond_to?(:rebuild_pg_search_documents)
13
15
  model.rebuild_pg_search_documents
14
16
  elsif conditional? || dynamic?
15
- model.find_each { |record| record.update_pg_search_document }
17
+ model.find_each(&:update_pg_search_document)
16
18
  else
17
19
  model.connection.execute(rebuild_sql)
18
20
  end
@@ -50,7 +50,7 @@ module PgSearch
50
50
  if should_have_document
51
51
  create_or_update_pg_search_document
52
52
  else
53
- pg_search_document.destroy if pg_search_document
53
+ pg_search_document&.destroy
54
54
  end
55
55
  end
56
56
 
@@ -58,7 +58,7 @@ module PgSearch
58
58
  if !pg_search_document
59
59
  create_pg_search_document(pg_search_document_attrs)
60
60
  elsif should_update_pg_search_document?
61
- pg_search_document.update_attributes(pg_search_document_attrs)
61
+ pg_search_document.update(pg_search_document_attrs)
62
62
  end
63
63
  end
64
64
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
4
  class Normalizer
3
5
  def initialize(config)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
4
  class Railtie < Rails::Railtie
3
5
  rake_tasks do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "active_support/core_ext/module/delegation"
2
4
 
3
5
  module PgSearch
@@ -25,7 +27,7 @@ module PgSearch
25
27
  # workaround for https://github.com/Casecommons/pg_search/issues/14
26
28
  module DisableEagerLoading
27
29
  def eager_loading?
28
- return false
30
+ false
29
31
  end
30
32
  end
31
33
 
@@ -38,7 +40,7 @@ module PgSearch
38
40
  end
39
41
 
40
42
  def tsearch
41
- raise TypeError.new("You need to instantiate this module with []")
43
+ raise TypeError, "You need to instantiate this module with []"
42
44
  end
43
45
 
44
46
  def with_pg_search_highlight
@@ -140,13 +142,13 @@ module PgSearch
140
142
  :dmetaphone => Features::DMetaphone,
141
143
  :tsearch => Features::TSearch,
142
144
  :trigram => Features::Trigram
143
- }
145
+ }.freeze
144
146
 
145
- def feature_for(feature_name) # rubocop:disable Metrics/AbcSize
147
+ def feature_for(feature_name)
146
148
  feature_name = feature_name.to_sym
147
149
  feature_class = FEATURE_CLASSES[feature_name]
148
150
 
149
- raise ArgumentError.new("Unknown feature: #{feature_name}") unless feature_class
151
+ raise ArgumentError, "Unknown feature: #{feature_name}" unless feature_class
150
152
 
151
153
  normalizer = Normalizer.new(config)
152
154
 
@@ -161,7 +163,7 @@ module PgSearch
161
163
 
162
164
  def rank
163
165
  (config.ranking_sql || ":tsearch").gsub(/:(\w*)/) do
164
- feature_for($1).rank.to_sql
166
+ feature_for(Regexp.last_match(1)).rank.to_sql
165
167
  end
166
168
  end
167
169
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rake'
2
4
  require 'pg_search'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PgSearch
2
- VERSION = '2.1.3'.freeze
4
+ VERSION = '2.1.4'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  $LOAD_PATH.push File.expand_path('lib', __dir__)
2
4
  require 'pg_search/version'
3
5
 
@@ -8,8 +10,8 @@ Gem::Specification.new do |s|
8
10
  s.authors = ['Grant Hutchins', 'Case Commons, LLC']
9
11
  s.email = %w[gems@nertzy.com casecommons-dev@googlegroups.com]
10
12
  s.homepage = 'https://github.com/Casecommons/pg_search'
11
- s.summary = %q(PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search)
12
- s.description = %q(PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search)
13
+ s.summary = "PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search"
14
+ s.description = "PgSearch builds Active Record named scopes that take advantage of PostgreSQL's full text search"
13
15
  s.licenses = ['MIT']
14
16
 
15
17
  s.files = `git ls-files`.split("\n")
@@ -18,15 +20,14 @@ Gem::Specification.new do |s|
18
20
 
19
21
  s.add_dependency 'activerecord', '>= 4.2'
20
22
  s.add_dependency 'activesupport', '>= 4.2'
21
- s.add_dependency 'arel', '>= 6'
22
23
 
23
24
  s.add_development_dependency 'codeclimate-test-reporter'
24
25
  s.add_development_dependency 'pry'
25
26
  s.add_development_dependency 'rake'
26
27
  s.add_development_dependency 'rspec', '>= 3.3'
27
- s.add_development_dependency 'rubocop', '>= 0.54.0'
28
+ s.add_development_dependency 'rubocop', '>= 0.63.0'
28
29
  s.add_development_dependency 'simplecov'
29
30
  s.add_development_dependency 'with_model', '>= 1.2'
30
31
 
31
- s.required_ruby_version = '>= 2.2'
32
+ s.required_ruby_version = '>= 2.3'
32
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe PgSearch do
@@ -19,7 +21,7 @@ describe PgSearch do
19
21
  include PgSearch
20
22
  belongs_to :another_model, :class_name => 'AssociatedModel'
21
23
 
22
- pg_search_scope :with_another, :associated_against => {:another_model => :title}
24
+ pg_search_scope :with_another, :associated_against => { :another_model => :title }
23
25
  end
24
26
  end
25
27
 
@@ -56,7 +58,7 @@ describe PgSearch do
56
58
  include PgSearch
57
59
  belongs_to :another_model, :class_name => 'AssociatedModel'
58
60
 
59
- pg_search_scope :with_associated, :against => :title, :associated_against => {:another_model => :title}
61
+ pg_search_scope :with_associated, :against => :title, :associated_against => { :another_model => :title }
60
62
  end
61
63
  end
62
64
 
@@ -92,7 +94,7 @@ describe PgSearch do
92
94
  include PgSearch
93
95
  has_many :other_models, :class_name => 'AssociatedModelWithHasMany', :foreign_key => 'ModelWithHasMany_id'
94
96
 
95
- pg_search_scope :with_associated, :against => [:title], :associated_against => {:other_models => :title}
97
+ pg_search_scope :with_associated, :against => [:title], :associated_against => { :other_models => :title }
96
98
  end
97
99
  end
98
100
 
@@ -172,7 +174,7 @@ describe PgSearch do
172
174
 
173
175
  pg_search_scope :with_associated,
174
176
  :against => :title,
175
- :associated_against => {:models_of_first_type => :title, :model_of_second_type => :title}
177
+ :associated_against => { :models_of_first_type => :title, :model_of_second_type => :title }
176
178
  end
177
179
  end
178
180
 
@@ -231,7 +233,7 @@ describe PgSearch do
231
233
  :foreign_key => 'ModelWithDoubleAssociation_again_id'
232
234
 
233
235
  pg_search_scope :with_associated, :against => :title,
234
- :associated_against => {:things => :title, :thingamabobs => :title}
236
+ :associated_against => { :things => :title, :thingamabobs => :title }
235
237
  end
236
238
  end
237
239
 
@@ -283,7 +285,7 @@ describe PgSearch do
283
285
  include PgSearch
284
286
  belongs_to :another_model, :class_name => 'AssociatedModel'
285
287
 
286
- pg_search_scope :with_associated, :associated_against => {:another_model => %i[title author]}
288
+ pg_search_scope :with_associated, :associated_against => { :another_model => %i[title author] }
287
289
  end
288
290
  end
289
291
 
@@ -336,7 +338,7 @@ describe PgSearch do
336
338
  include PgSearch
337
339
  belongs_to :another_model, class_name: 'AssociatedModel'
338
340
 
339
- pg_search_scope :with_associated, associated_against: {another_model: :number}
341
+ pg_search_scope :with_associated, associated_against: { another_model: :number }
340
342
  end
341
343
  end
342
344
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe "pagination" do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "spec_helper"
2
4
 
3
5
  describe "an Active Record model which includes PgSearch" do
@@ -65,7 +67,7 @@ describe "an Active Record model which includes PgSearch" do
65
67
  context "dynamically" do
66
68
  it "raises an exception when invoked" do
67
69
  ModelWithPgSearch.pg_search_scope :with_unknown_option,
68
- ->(*) { {:against => :content, :foo => :bar} }
70
+ ->(*) { { :against => :content, :foo => :bar } }
69
71
 
70
72
  expect {
71
73
  ModelWithPgSearch.with_unknown_option("foo")
@@ -88,7 +90,7 @@ describe "an Active Record model which includes PgSearch" do
88
90
  context "dynamically" do
89
91
  it "raises an exception when invoked" do
90
92
  ModelWithPgSearch.pg_search_scope :with_unknown_using,
91
- ->(*) { {:against => :content, :using => :foo} }
93
+ ->(*) { { :against => :content, :using => :foo } }
92
94
 
93
95
  expect {
94
96
  ModelWithPgSearch.with_unknown_using("foo")
@@ -111,7 +113,7 @@ describe "an Active Record model which includes PgSearch" do
111
113
  context "dynamically" do
112
114
  it "raises an exception when invoked" do
113
115
  ModelWithPgSearch.pg_search_scope :with_unknown_ignoring,
114
- ->(*) { {:against => :content, :ignoring => :foo} }
116
+ ->(*) { { :against => :content, :ignoring => :foo } }
115
117
 
116
118
  expect {
117
119
  ModelWithPgSearch.with_unknown_ignoring("foo")
@@ -130,7 +132,7 @@ describe "an Active Record model which includes PgSearch" do
130
132
 
131
133
  context "dynamically" do
132
134
  it "raises an exception when invoked" do
133
- ModelWithPgSearch.pg_search_scope :with_unknown_ignoring, ->(*){ {} }
135
+ ModelWithPgSearch.pg_search_scope :with_unknown_ignoring, ->(*) { {} }
134
136
 
135
137
  expect {
136
138
  ModelWithPgSearch.with_unknown_ignoring("foo")
@@ -222,7 +224,7 @@ describe "an Active Record model which includes PgSearch" do
222
224
  has_many :houses
223
225
  pg_search_scope :named, against: [:name]
224
226
  scope :with_house_in_city, lambda { |city|
225
- joins(:houses).where(House.table_name.to_sym => {city: city})
227
+ joins(:houses).where(House.table_name.to_sym => { city: city })
226
228
  }
227
229
  scope :house_search_city, lambda { |query|
228
230
  joins(:houses).merge(House.search_city(query))
@@ -342,7 +344,7 @@ describe "an Active Record model which includes PgSearch" do
342
344
  twice = ModelWithPgSearch.create!(:content => 'foo foo')
343
345
 
344
346
  records = ModelWithPgSearch.search_content('foo')
345
- .where("#{PgSearch::Configuration.alias(ModelWithPgSearch.table_name)}.rank > 0.07")
347
+ .where("#{PgSearch::Configuration.alias(ModelWithPgSearch.table_name)}.rank > 0.07")
346
348
 
347
349
  expect(records).to eq [twice]
348
350
  end
@@ -537,8 +539,8 @@ describe "an Active Record model which includes PgSearch" do
537
539
 
538
540
  context "when a threshold is specified" do
539
541
  before do
540
- ModelWithPgSearch.pg_search_scope :with_strict_trigrams, :against => %i[title content], :using => {trigram: {threshold: 0.5}}
541
- ModelWithPgSearch.pg_search_scope :with_permissive_trigrams, :against => %i[title content], :using => {trigram: {threshold: 0.1}}
542
+ ModelWithPgSearch.pg_search_scope :with_strict_trigrams, :against => %i[title content], :using => { trigram: { threshold: 0.5 } }
543
+ ModelWithPgSearch.pg_search_scope :with_permissive_trigrams, :against => %i[title content], :using => { trigram: { threshold: 0.1 } }
542
544
  end
543
545
 
544
546
  it "uses the threshold in the trigram expression" do
@@ -565,7 +567,7 @@ describe "an Active Record model which includes PgSearch" do
565
567
  ModelWithPgSearch.pg_search_scope :search_title_with_prefixes,
566
568
  :against => :title,
567
569
  :using => {
568
- :tsearch => {:prefix => true}
570
+ :tsearch => { :prefix => true }
569
571
  }
570
572
  end
571
573
 
@@ -594,7 +596,7 @@ describe "an Active Record model which includes PgSearch" do
594
596
  ModelWithPgSearch.pg_search_scope :search_content_with_english,
595
597
  :against => :content,
596
598
  :using => {
597
- :tsearch => {:dictionary => :english}
599
+ :tsearch => { :dictionary => :english }
598
600
  }
599
601
  end
600
602
 
@@ -682,7 +684,7 @@ describe "an Active Record model which includes PgSearch" do
682
684
  ModelWithPgSearch.pg_search_scope :search_content_with_normalization,
683
685
  :against => :content,
684
686
  :using => {
685
- :tsearch => {:normalization => 2}
687
+ :tsearch => { :normalization => 2 }
686
688
  }
687
689
  end
688
690
 
@@ -729,7 +731,7 @@ describe "an Active Record model which includes PgSearch" do
729
731
  context "against columns ranked with a hash" do
730
732
  before do
731
733
  ModelWithPgSearch.pg_search_scope :search_weighted_by_hash,
732
- :against => {:content => 'B', :title => 'A'}
734
+ :against => { :content => 'B', :title => 'A' }
733
735
  end
734
736
 
735
737
  it "returns results sorted by weighted rank" do
@@ -763,7 +765,7 @@ describe "an Active Record model which includes PgSearch" do
763
765
  ModelWithPgSearch.pg_search_scope :search_title_with_any_word,
764
766
  :against => :title,
765
767
  :using => {
766
- :tsearch => {:any_word => true}
768
+ :tsearch => { :any_word => true }
767
769
  }
768
770
 
769
771
  ModelWithPgSearch.pg_search_scope :search_title_with_all_words,
@@ -788,7 +790,7 @@ describe "an Active Record model which includes PgSearch" do
788
790
  ModelWithPgSearch.pg_search_scope :search_with_negation,
789
791
  :against => :title,
790
792
  :using => {
791
- :tsearch => {:negation => true}
793
+ :tsearch => { :negation => true }
792
794
  }
793
795
  end
794
796
 
@@ -880,7 +882,7 @@ describe "an Active Record model which includes PgSearch" do
880
882
  ModelWithPgSearch.pg_search_scope :with_tsearch,
881
883
  :against => :title,
882
884
  :using => [
883
- [:tsearch, {:dictionary => 'english'}]
885
+ [:tsearch, { :dictionary => 'english' }]
884
886
  ]
885
887
 
886
888
  ModelWithPgSearch.pg_search_scope :with_trigram,
@@ -895,7 +897,7 @@ describe "an Active Record model which includes PgSearch" do
895
897
  ModelWithPgSearch.pg_search_scope :with_tsearch_and_trigram,
896
898
  :against => :title,
897
899
  :using => [
898
- [:tsearch, {:dictionary => 'english'}],
900
+ [:tsearch, { :dictionary => 'english' }],
899
901
  :trigram
900
902
  ]
901
903
 
@@ -903,7 +905,7 @@ describe "an Active Record model which includes PgSearch" do
903
905
  :against => %i[content title],
904
906
  :ignoring => :accents,
905
907
  :using => {
906
- :tsearch => {:dictionary => 'english'},
908
+ :tsearch => { :dictionary => 'english' },
907
909
  :dmetaphone => {},
908
910
  :trigram => {}
909
911
  }
@@ -949,8 +951,8 @@ describe "an Active Record model which includes PgSearch" do
949
951
 
950
952
  context "with feature-specific configuration" do
951
953
  before do
952
- @tsearch_config = tsearch_config = {:dictionary => 'english'}
953
- @trigram_config = trigram_config = {:foo => 'bar'}
954
+ @tsearch_config = tsearch_config = { :dictionary => 'english' }
955
+ @trigram_config = trigram_config = { :foo => 'bar' }
954
956
 
955
957
  ModelWithPgSearch.pg_search_scope :with_tsearch_and_trigram_using_hash,
956
958
  :against => :title,
@@ -1011,7 +1013,7 @@ describe "an Active Record model which includes PgSearch" do
1011
1013
  unexpected.comments.create(body: 'commentwo')
1012
1014
 
1013
1015
  Post.pg_search_scope :search_by_content_with_tsvector,
1014
- :associated_against => {comments: [:body]},
1016
+ :associated_against => { comments: [:body] },
1015
1017
  :using => {
1016
1018
  :tsearch => {
1017
1019
  :tsvector_column => 'content_tsvector',
@@ -1171,8 +1173,8 @@ describe "an Active Record model which includes PgSearch" do
1171
1173
 
1172
1174
  multiplied_result =
1173
1175
  ModelWithPgSearch.search_content_with_importance_as_rank_multiplier("foo")
1174
- .with_pg_search_rank
1175
- .first
1176
+ .with_pg_search_rank
1177
+ .first
1176
1178
 
1177
1179
  multiplied_rank = multiplied_result.pg_search_rank
1178
1180
 
@@ -1280,8 +1282,8 @@ describe "an Active Record model which includes PgSearch" do
1280
1282
  ModelWithPgSearch.pg_search_scope :search_content_ranked_by_dmetaphone,
1281
1283
  :against => :content,
1282
1284
  :using => {
1283
- :tsearch => {:any_word => true, :prefix => true},
1284
- :dmetaphone => {:any_word => true, :prefix => true, :sort_only => true}
1285
+ :tsearch => { :any_word => true, :prefix => true },
1286
+ :dmetaphone => { :any_word => true, :prefix => true, :sort_only => true }
1285
1287
  },
1286
1288
  :ranked_by => ":tsearch + (0.5 * :dmetaphone)"
1287
1289