pg_search 2.1.3 → 2.1.4

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