pg_search 2.3.0 → 2.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +1 -0
- data/.github/dependabot.yml +11 -0
- data/.jrubyrc +1 -0
- data/.rubocop.yml +85 -7
- data/.travis.yml +14 -22
- data/CHANGELOG.md +41 -16
- data/CODE_OF_CONDUCT.md +76 -0
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README.md +60 -18
- data/lib/pg_search.rb +4 -6
- data/lib/pg_search/document.rb +1 -1
- data/lib/pg_search/features/dmetaphone.rb +4 -6
- data/lib/pg_search/features/tsearch.rb +13 -12
- data/lib/pg_search/migration/templates/add_pg_search_dmetaphone_support_functions.rb.erb +6 -6
- data/lib/pg_search/migration/templates/create_pg_search_documents.rb.erb +2 -2
- data/lib/pg_search/multisearch.rb +10 -1
- data/lib/pg_search/multisearch/rebuilder.rb +7 -3
- data/lib/pg_search/scope_options.rb +3 -3
- data/lib/pg_search/tasks.rb +2 -1
- data/lib/pg_search/version.rb +1 -1
- data/pg_search.gemspec +11 -7
- data/spec/.rubocop.yml +2 -2
- data/spec/integration/.rubocop.yml +11 -0
- data/spec/integration/associations_spec.rb +17 -56
- data/spec/integration/deprecation_spec.rb +1 -1
- data/spec/integration/pg_search_spec.rb +62 -51
- data/spec/lib/pg_search/configuration/association_spec.rb +8 -6
- data/spec/lib/pg_search/features/dmetaphone_spec.rb +2 -2
- data/spec/lib/pg_search/features/trigram_spec.rb +15 -11
- data/spec/lib/pg_search/features/tsearch_spec.rb +16 -10
- data/spec/lib/pg_search/multisearch/rebuilder_spec.rb +116 -71
- data/spec/lib/pg_search/multisearch_spec.rb +48 -29
- data/spec/lib/pg_search/multisearchable_spec.rb +150 -97
- data/spec/lib/pg_search/normalizer_spec.rb +12 -10
- data/spec/lib/pg_search_spec.rb +66 -55
- data/spec/spec_helper.rb +13 -4
- data/spec/support/database.rb +1 -1
- metadata +78 -17
@@ -2,15 +2,16 @@
|
|
2
2
|
|
3
3
|
require "spec_helper"
|
4
4
|
|
5
|
+
# rubocop:disable RSpec/NestedGroups
|
5
6
|
describe PgSearch::Normalizer do
|
6
7
|
describe "#add_normalization" do
|
7
8
|
context "when config[:ignore] includes :accents" do
|
8
9
|
context "when passed an Arel node" do
|
9
10
|
it "wraps the expression in unaccent()" do
|
10
|
-
config =
|
11
|
+
config = instance_double("PgSearch::Configuration", "config", ignore: [:accents])
|
11
12
|
node = Arel::Nodes::NamedFunction.new("foo", [Arel::Nodes.build_quoted("bar")])
|
12
13
|
|
13
|
-
normalizer =
|
14
|
+
normalizer = described_class.new(config)
|
14
15
|
expect(normalizer.add_normalization(node)).to eq("unaccent(foo('bar'))")
|
15
16
|
end
|
16
17
|
|
@@ -19,9 +20,9 @@ describe PgSearch::Normalizer do
|
|
19
20
|
allow(PgSearch).to receive(:unaccent_function).and_return("my_unaccent")
|
20
21
|
node = Arel::Nodes::NamedFunction.new("foo", [Arel::Nodes.build_quoted("bar")])
|
21
22
|
|
22
|
-
config =
|
23
|
+
config = instance_double("PgSearch::Configuration", "config", ignore: [:accents])
|
23
24
|
|
24
|
-
normalizer =
|
25
|
+
normalizer = described_class.new(config)
|
25
26
|
expect(normalizer.add_normalization(node)).to eq("my_unaccent(foo('bar'))")
|
26
27
|
end
|
27
28
|
end
|
@@ -29,9 +30,9 @@ describe PgSearch::Normalizer do
|
|
29
30
|
|
30
31
|
context "when passed a String" do
|
31
32
|
it "wraps the expression in unaccent()" do
|
32
|
-
config =
|
33
|
+
config = instance_double("PgSearch::Configuration", "config", ignore: [:accents])
|
33
34
|
|
34
|
-
normalizer =
|
35
|
+
normalizer = described_class.new(config)
|
35
36
|
expect(normalizer.add_normalization("foo")).to eq("unaccent(foo)")
|
36
37
|
end
|
37
38
|
|
@@ -39,9 +40,9 @@ describe PgSearch::Normalizer do
|
|
39
40
|
it "wraps the expression in that function" do
|
40
41
|
allow(PgSearch).to receive(:unaccent_function).and_return("my_unaccent")
|
41
42
|
|
42
|
-
config =
|
43
|
+
config = instance_double("PgSearch::Configuration", "config", ignore: [:accents])
|
43
44
|
|
44
|
-
normalizer =
|
45
|
+
normalizer = described_class.new(config)
|
45
46
|
expect(normalizer.add_normalization("foo")).to eq("my_unaccent(foo)")
|
46
47
|
end
|
47
48
|
end
|
@@ -50,11 +51,12 @@ describe PgSearch::Normalizer do
|
|
50
51
|
|
51
52
|
context "when config[:ignore] does not include :accents" do
|
52
53
|
it "passes the expression through" do
|
53
|
-
config =
|
54
|
+
config = instance_double("PgSearch::Configuration", "config", ignore: [])
|
54
55
|
|
55
|
-
normalizer =
|
56
|
+
normalizer = described_class.new(config)
|
56
57
|
expect(normalizer.add_normalization("foo")).to eq("foo")
|
57
58
|
end
|
58
59
|
end
|
59
60
|
end
|
60
61
|
end
|
62
|
+
# rubocop:enable RSpec/NestedGroups
|
data/spec/lib/pg_search_spec.rb
CHANGED
@@ -2,42 +2,43 @@
|
|
2
2
|
|
3
3
|
require "spec_helper"
|
4
4
|
|
5
|
-
# For
|
5
|
+
# For Active Record 5.x and 6.0, the association reflection's cache needs be cleared
|
6
6
|
# because we're stubbing the related constants.
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
def clear_searchable_cache
|
14
|
-
end
|
7
|
+
if ActiveRecord::VERSION::MAJOR == 5 || (ActiveRecord::VERSION::MAJOR == 6 && ActiveRecord::VERSION::MINOR == 0)
|
8
|
+
def clear_searchable_cache
|
9
|
+
PgSearch::Document.reflect_on_association(:searchable).clear_association_scope_cache
|
10
|
+
end
|
11
|
+
else
|
12
|
+
def clear_searchable_cache
|
15
13
|
end
|
16
14
|
end
|
17
15
|
|
16
|
+
# rubocop:disable RSpec/NestedGroups
|
18
17
|
describe PgSearch do
|
19
18
|
describe ".multisearch" do
|
20
|
-
with_table "pg_search_documents",
|
19
|
+
with_table "pg_search_documents", &DOCUMENTS_SCHEMA
|
21
20
|
|
22
21
|
describe "delegation to PgSearch::Document.search" do
|
23
|
-
subject {
|
22
|
+
subject { described_class.multisearch(query) }
|
23
|
+
|
24
|
+
let(:query) { instance_double("String", "query") }
|
25
|
+
let(:relation) { instance_double("ActiveRecord::Relation", "relation") }
|
24
26
|
|
25
|
-
let(:query) { double(:query) }
|
26
|
-
let(:relation) { double(:relation) }
|
27
27
|
before do
|
28
|
-
|
28
|
+
allow(PgSearch::Document).to receive(:search).with(query).and_return(relation)
|
29
29
|
end
|
30
30
|
|
31
31
|
it { is_expected.to eq(relation) }
|
32
32
|
end
|
33
33
|
|
34
34
|
context "with PgSearch.multisearch_options set to a Hash" do
|
35
|
-
before { allow(PgSearch).to receive(:multisearch_options).and_return(using: :dmetaphone) }
|
36
35
|
subject do
|
37
|
-
|
38
|
-
|
36
|
+
clear_searchable_cache
|
37
|
+
described_class.multisearch(query).map(&:searchable)
|
39
38
|
end
|
40
39
|
|
40
|
+
before { allow(described_class).to receive(:multisearch_options).and_return(using: :dmetaphone) }
|
41
|
+
|
41
42
|
with_model :MultisearchableModel do
|
42
43
|
table do |t|
|
43
44
|
t.string :title
|
@@ -50,17 +51,18 @@ describe PgSearch do
|
|
50
51
|
|
51
52
|
let!(:soundalike_record) { MultisearchableModel.create!(title: 'foning') }
|
52
53
|
let(:query) { "Phoning" }
|
54
|
+
|
53
55
|
it { is_expected.to include(soundalike_record) }
|
54
56
|
end
|
55
57
|
|
56
58
|
context "with PgSearch.multisearch_options set to a Proc" do
|
57
59
|
subject do
|
58
|
-
|
59
|
-
|
60
|
+
clear_searchable_cache
|
61
|
+
described_class.multisearch(query, soundalike).map(&:searchable)
|
60
62
|
end
|
61
63
|
|
62
64
|
before do
|
63
|
-
allow(
|
65
|
+
allow(described_class).to receive(:multisearch_options) do
|
64
66
|
lambda do |query, soundalike|
|
65
67
|
if soundalike
|
66
68
|
{ using: :dmetaphone, query: query }
|
@@ -86,16 +88,18 @@ describe PgSearch do
|
|
86
88
|
|
87
89
|
context "with soundalike true" do
|
88
90
|
let(:soundalike) { true }
|
91
|
+
|
89
92
|
it { is_expected.to include(soundalike_record) }
|
90
93
|
end
|
91
94
|
|
92
95
|
context "with soundalike false" do
|
93
96
|
let(:soundalike) { false }
|
97
|
+
|
94
98
|
it { is_expected.not_to include(soundalike_record) }
|
95
99
|
end
|
96
100
|
end
|
97
101
|
|
98
|
-
context "on an STI subclass" do
|
102
|
+
context "when on an STI subclass" do
|
99
103
|
context "with standard type column" do
|
100
104
|
with_model :SuperclassModel do
|
101
105
|
table do |t|
|
@@ -128,7 +132,7 @@ describe PgSearch do
|
|
128
132
|
|
129
133
|
expect(PgSearch::Document.count).to be 2
|
130
134
|
|
131
|
-
results =
|
135
|
+
results = described_class.multisearch("foo bar")
|
132
136
|
|
133
137
|
expect(results).to eq [included.pg_search_document]
|
134
138
|
end
|
@@ -141,11 +145,12 @@ describe PgSearch do
|
|
141
145
|
model = SearchableSubclassModel.find(model.id)
|
142
146
|
model.content = "foo"
|
143
147
|
model.save!
|
144
|
-
results =
|
148
|
+
results = described_class.multisearch("foo")
|
145
149
|
expect(results.size).to eq(SearchableSubclassModel.count)
|
146
150
|
end
|
147
151
|
|
148
|
-
|
152
|
+
# rubocop:disable RSpec/MultipleExpectations
|
153
|
+
specify "reindexing works" do
|
149
154
|
NonSearchableSubclassModel.create!(content: "foo bar")
|
150
155
|
NonSearchableSubclassModel.create!(content: "baz")
|
151
156
|
expected = SearchableSubclassModel.create!(content: "baz")
|
@@ -161,11 +166,12 @@ describe PgSearch do
|
|
161
166
|
|
162
167
|
PgSearch::Multisearch.rebuild(SearchableSubclassModel)
|
163
168
|
|
164
|
-
|
169
|
+
clear_searchable_cache
|
165
170
|
expect(PgSearch::Document.count).to be 1
|
166
171
|
expect(PgSearch::Document.first.searchable.class).to be SearchableSubclassModel
|
167
172
|
expect(PgSearch::Document.first.searchable).to eq expected
|
168
173
|
end
|
174
|
+
# rubocop:enable RSpec/MultipleExpectations
|
169
175
|
|
170
176
|
it "reindexing searchable STI doesn't clobber other related STI models" do
|
171
177
|
SearchableSubclassModel.create!(content: "baz")
|
@@ -175,7 +181,7 @@ describe PgSearch do
|
|
175
181
|
PgSearch::Multisearch.rebuild(SearchableSubclassModel)
|
176
182
|
expect(PgSearch::Document.count).to be 2
|
177
183
|
|
178
|
-
|
184
|
+
clear_searchable_cache
|
179
185
|
classes = PgSearch::Document.all.collect { |d| d.searchable.class }
|
180
186
|
expect(classes).to include SearchableSubclassModel
|
181
187
|
expect(classes).to include AnotherSearchableSubclassModel
|
@@ -218,7 +224,7 @@ describe PgSearch do
|
|
218
224
|
|
219
225
|
expect(PgSearch::Document.count).to be 2
|
220
226
|
|
221
|
-
results =
|
227
|
+
results = described_class.multisearch("foo bar")
|
222
228
|
|
223
229
|
expect(results).to eq [included.pg_search_document]
|
224
230
|
end
|
@@ -227,57 +233,62 @@ describe PgSearch do
|
|
227
233
|
end
|
228
234
|
|
229
235
|
describe ".disable_multisearch" do
|
230
|
-
it "
|
231
|
-
|
232
|
-
|
233
|
-
|
236
|
+
it "disables multisearch temporarily" do
|
237
|
+
multisearch_enabled_before = described_class.multisearch_enabled?
|
238
|
+
multisearch_enabled_inside = nil
|
239
|
+
described_class.disable_multisearch do
|
240
|
+
multisearch_enabled_inside = described_class.multisearch_enabled?
|
234
241
|
end
|
235
|
-
|
242
|
+
multisearch_enabled_after = described_class.multisearch_enabled?
|
236
243
|
|
237
|
-
expect(
|
238
|
-
expect(
|
239
|
-
expect(
|
244
|
+
expect(multisearch_enabled_before).to be(true)
|
245
|
+
expect(multisearch_enabled_inside).to be(false)
|
246
|
+
expect(multisearch_enabled_after).to be(true)
|
240
247
|
end
|
241
248
|
|
242
|
-
it "
|
243
|
-
|
249
|
+
it "reenables multisearch after an error" do
|
250
|
+
multisearch_enabled_before = described_class.multisearch_enabled?
|
251
|
+
multisearch_enabled_inside = nil
|
244
252
|
begin
|
245
|
-
|
246
|
-
|
253
|
+
described_class.disable_multisearch do
|
254
|
+
multisearch_enabled_inside = described_class.multisearch_enabled?
|
247
255
|
raise
|
248
256
|
end
|
249
257
|
rescue StandardError
|
250
258
|
end
|
259
|
+
multisearch_enabled_after = described_class.multisearch_enabled?
|
251
260
|
|
252
|
-
|
253
|
-
|
254
|
-
expect(
|
255
|
-
expect(@multisearch_enabled_inside).to be(false)
|
256
|
-
expect(@multisearch_enabled_after).to be(true)
|
261
|
+
expect(multisearch_enabled_before).to be(true)
|
262
|
+
expect(multisearch_enabled_inside).to be(false)
|
263
|
+
expect(multisearch_enabled_after).to be(true)
|
257
264
|
end
|
258
265
|
|
259
|
-
|
266
|
+
# rubocop:disable RSpec/ExampleLength
|
267
|
+
it "does not disable multisearch on other threads" do
|
260
268
|
values = Queue.new
|
261
269
|
sync = Queue.new
|
262
270
|
Thread.new do
|
263
|
-
values.push
|
271
|
+
values.push described_class.multisearch_enabled?
|
264
272
|
sync.pop # wait
|
265
|
-
values.push
|
273
|
+
values.push described_class.multisearch_enabled?
|
266
274
|
sync.pop # wait
|
267
|
-
values.push
|
275
|
+
values.push described_class.multisearch_enabled?
|
268
276
|
end
|
269
277
|
|
270
|
-
|
271
|
-
|
278
|
+
multisearch_enabled_before = values.pop
|
279
|
+
multisearch_enabled_inside = nil
|
280
|
+
described_class.disable_multisearch do
|
272
281
|
sync.push :go
|
273
|
-
|
282
|
+
multisearch_enabled_inside = values.pop
|
274
283
|
end
|
275
284
|
sync.push :go
|
276
|
-
|
285
|
+
multisearch_enabled_after = values.pop
|
277
286
|
|
278
|
-
expect(
|
279
|
-
expect(
|
280
|
-
expect(
|
287
|
+
expect(multisearch_enabled_before).to be(true)
|
288
|
+
expect(multisearch_enabled_inside).to be(true)
|
289
|
+
expect(multisearch_enabled_after).to be(true)
|
281
290
|
end
|
291
|
+
# rubocop:enable RSpec/ExampleLength
|
282
292
|
end
|
283
293
|
end
|
294
|
+
# rubocop:enable RSpec/NestedGroups
|
data/spec/spec_helper.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'warning'
|
4
|
+
# Ignore Ruby 2.7 warnings from Active Record
|
5
|
+
Warning.ignore :keyword_separation
|
6
|
+
|
3
7
|
require 'simplecov'
|
4
8
|
SimpleCov.start
|
5
9
|
|
@@ -7,12 +11,14 @@ require "bundler/setup"
|
|
7
11
|
require "pg_search"
|
8
12
|
|
9
13
|
RSpec.configure do |config|
|
10
|
-
config.expect_with :rspec do |
|
11
|
-
|
14
|
+
config.expect_with :rspec do |expects|
|
15
|
+
expects.syntax = :expect
|
12
16
|
end
|
13
17
|
|
14
|
-
config.mock_with :rspec do |
|
15
|
-
|
18
|
+
config.mock_with :rspec do |mocks|
|
19
|
+
mocks.syntax = :expect
|
20
|
+
mocks.verify_doubled_constant_names = true
|
21
|
+
mocks.verify_partial_doubles = true
|
16
22
|
end
|
17
23
|
|
18
24
|
config.example_status_persistence_file_path = 'tmp/examples.txt'
|
@@ -25,4 +31,7 @@ DOCUMENTS_SCHEMA = lambda do |t|
|
|
25
31
|
t.belongs_to :searchable, polymorphic: true, index: true
|
26
32
|
t.text :content
|
27
33
|
t.timestamps null: false
|
34
|
+
|
35
|
+
# Used to test additional_attributes setup
|
36
|
+
t.text :additional_attribute_column
|
28
37
|
end
|
data/spec/support/database.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Grant Hutchins
|
8
8
|
- Case Commons, LLC
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-11-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '5.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '5.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: activesupport
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '5.2'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
41
|
+
version: '5.2'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: pry
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,28 +73,28 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: rubocop
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0
|
90
|
+
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0
|
97
|
+
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rubocop-performance
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,6 +109,48 @@ dependencies:
|
|
109
109
|
- - ">="
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rubocop-rails
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubocop-rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rubocop-rspec
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
112
154
|
- !ruby/object:Gem::Dependency
|
113
155
|
name: simplecov
|
114
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,20 +165,34 @@ dependencies:
|
|
123
165
|
- - ">="
|
124
166
|
- !ruby/object:Gem::Version
|
125
167
|
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: warning
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
126
182
|
- !ruby/object:Gem::Dependency
|
127
183
|
name: with_model
|
128
184
|
requirement: !ruby/object:Gem::Requirement
|
129
185
|
requirements:
|
130
186
|
- - ">="
|
131
187
|
- !ruby/object:Gem::Version
|
132
|
-
version: '
|
188
|
+
version: '0'
|
133
189
|
type: :development
|
134
190
|
prerelease: false
|
135
191
|
version_requirements: !ruby/object:Gem::Requirement
|
136
192
|
requirements:
|
137
193
|
- - ">="
|
138
194
|
- !ruby/object:Gem::Version
|
139
|
-
version: '
|
195
|
+
version: '0'
|
140
196
|
description: PgSearch builds Active Record named scopes that take advantage of PostgreSQL's
|
141
197
|
full text search
|
142
198
|
email:
|
@@ -150,11 +206,14 @@ files:
|
|
150
206
|
- ".bundle/config"
|
151
207
|
- ".codeclimate.yml"
|
152
208
|
- ".editorconfig"
|
209
|
+
- ".github/dependabot.yml"
|
153
210
|
- ".gitignore"
|
211
|
+
- ".jrubyrc"
|
154
212
|
- ".rspec"
|
155
213
|
- ".rubocop.yml"
|
156
214
|
- ".travis.yml"
|
157
215
|
- CHANGELOG.md
|
216
|
+
- CODE_OF_CONDUCT.md
|
158
217
|
- CONTRIBUTING.md
|
159
218
|
- Gemfile
|
160
219
|
- LICENSE
|
@@ -187,6 +246,7 @@ files:
|
|
187
246
|
- lib/pg_search/version.rb
|
188
247
|
- pg_search.gemspec
|
189
248
|
- spec/.rubocop.yml
|
249
|
+
- spec/integration/.rubocop.yml
|
190
250
|
- spec/integration/associations_spec.rb
|
191
251
|
- spec/integration/deprecation_spec.rb
|
192
252
|
- spec/integration/pagination_spec.rb
|
@@ -212,7 +272,7 @@ homepage: https://github.com/Casecommons/pg_search
|
|
212
272
|
licenses:
|
213
273
|
- MIT
|
214
274
|
metadata: {}
|
215
|
-
post_install_message:
|
275
|
+
post_install_message:
|
216
276
|
rdoc_options: []
|
217
277
|
require_paths:
|
218
278
|
- lib
|
@@ -220,19 +280,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
220
280
|
requirements:
|
221
281
|
- - ">="
|
222
282
|
- !ruby/object:Gem::Version
|
223
|
-
version: '2.
|
283
|
+
version: '2.5'
|
224
284
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
285
|
requirements:
|
226
286
|
- - ">="
|
227
287
|
- !ruby/object:Gem::Version
|
228
288
|
version: '0'
|
229
289
|
requirements: []
|
230
|
-
rubygems_version: 3.
|
231
|
-
signing_key:
|
290
|
+
rubygems_version: 3.1.4
|
291
|
+
signing_key:
|
232
292
|
specification_version: 4
|
233
293
|
summary: PgSearch builds Active Record named scopes that take advantage of PostgreSQL's
|
234
294
|
full text search
|
235
295
|
test_files:
|
296
|
+
- spec/integration/.rubocop.yml
|
236
297
|
- spec/integration/associations_spec.rb
|
237
298
|
- spec/integration/deprecation_spec.rb
|
238
299
|
- spec/integration/pagination_spec.rb
|