pursuit 0.4.1 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b1d45107d4ab3d9a2ac9d9eaf8451e6f75762f2c8ac71e51683c3afe98009c7
4
- data.tar.gz: e40fa3f38548173ba042cd232347127a3059c4e7f4a417569cad81d16b2b3710
3
+ metadata.gz: 293a43dc6ac02a82e39312daaa94e7d222264493d8d0df1e48d1c1a767711a7a
4
+ data.tar.gz: e47009b06f1df8e7d81e60d46f08ed67eadf304a273379ce89bee262a416e398
5
5
  SHA512:
6
- metadata.gz: 65009e855c743fad6e91b5939d59456c845976b2add94fd1d03a9603d34a6046d5e45e58dd3fc7ca33291600f1a17bb879b2c492f1d5c22102bc9f2124c591b3
7
- data.tar.gz: 9662bc16e8eb17107089b5bdd7635a91d0647b71a015cff79bf43df4b517729036d8c9ff3fde2b299ca82e63e440b3abca2531eddaa35aeb306472e62a7bc708
6
+ metadata.gz: 215ad485b981a56628931332434a340ba353397fb70fa40067ee39cccf38405b28ecec2a114e87aca7e1de3160fd05aa6bc1d3af7724897d613ae469d6c05bf2
7
+ data.tar.gz: dbd090187418d64ba7c91ce1ed836197fea536ee5896b3fe430ff7e70b740e4ef6117512d98e368ce244ffae4ffd501705bf9b3408892f8335fc4e14490a2a5b
data/.rubocop.yml CHANGED
@@ -1,21 +1,36 @@
1
+ require:
2
+ - rubocop-rake
3
+ - rubocop-rspec
4
+
1
5
  AllCops:
2
6
  Exclude:
3
7
  - 'bin/**/*'
8
+ NewCops: enable
9
+ TargetRubyVersion: 2.6.0
10
+
11
+ Layout/LineLength:
12
+ Max: 120
4
13
 
5
14
  Metrics/AbcSize:
6
15
  Max: 30
7
16
 
8
- Metrics/LineLength:
9
- Max: 120
10
-
11
17
  Metrics/BlockLength:
12
- Enabled: false
18
+ Max: 50
13
19
 
14
20
  Metrics/ClassLength:
15
- Enabled: false
21
+ Max: 500
16
22
 
17
23
  Metrics/MethodLength:
18
- Enabled: false
24
+ Max: 50
25
+
26
+ RSpec/ExampleLength:
27
+ Max: 20
28
+
29
+ RSpec/MultipleMemoizedHelpers:
30
+ Max: 20
31
+
32
+ RSpec/NestedGroups:
33
+ Max: 5
19
34
 
20
35
  Style/Documentation:
21
36
  Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.1.0
1
+ 3.2.0
data/.travis.yml CHANGED
@@ -1,10 +1,11 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 3.0.2
3
+ - 3.2.0
4
4
  gemfile:
5
5
  - travis/gemfiles/5.2.gemfile
6
6
  - travis/gemfiles/6.0.gemfile
7
7
  - travis/gemfiles/6.1.gemfile
8
+ - travis/gemfiles/7.0.gemfile
8
9
  services:
9
10
  - postgresql
10
11
  before_install:
data/Gemfile.lock CHANGED
@@ -1,32 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pursuit (0.4.1)
4
+ pursuit (0.4.3)
5
5
  activerecord (>= 5.2.0, < 7.1.0)
6
6
  activesupport (>= 5.2.0, < 7.1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actionpack (7.0.1)
12
- actionview (= 7.0.1)
13
- activesupport (= 7.0.1)
11
+ actionpack (7.0.4.1)
12
+ actionview (= 7.0.4.1)
13
+ activesupport (= 7.0.4.1)
14
14
  rack (~> 2.0, >= 2.2.0)
15
15
  rack-test (>= 0.6.3)
16
16
  rails-dom-testing (~> 2.0)
17
17
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
- actionview (7.0.1)
19
- activesupport (= 7.0.1)
18
+ actionview (7.0.4.1)
19
+ activesupport (= 7.0.4.1)
20
20
  builder (~> 3.1)
21
21
  erubi (~> 1.4)
22
22
  rails-dom-testing (~> 2.0)
23
23
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
- activemodel (7.0.1)
25
- activesupport (= 7.0.1)
26
- activerecord (7.0.1)
27
- activemodel (= 7.0.1)
28
- activesupport (= 7.0.1)
29
- activesupport (7.0.1)
24
+ activemodel (7.0.4.1)
25
+ activesupport (= 7.0.4.1)
26
+ activerecord (7.0.4.1)
27
+ activemodel (= 7.0.4.1)
28
+ activesupport (= 7.0.4.1)
29
+ activesupport (7.0.4.1)
30
30
  concurrent-ruby (~> 1.0, >= 1.0.2)
31
31
  i18n (>= 1.6, < 2)
32
32
  minitest (>= 5.1)
@@ -34,16 +34,16 @@ GEM
34
34
  ast (2.4.2)
35
35
  builder (3.2.4)
36
36
  coderay (1.1.3)
37
- combustion (1.3.5)
37
+ combustion (1.3.7)
38
38
  activesupport (>= 3.0.0)
39
39
  railties (>= 3.0.0)
40
40
  thor (>= 0.14.6)
41
- concurrent-ruby (1.1.9)
41
+ concurrent-ruby (1.1.10)
42
42
  crass (1.0.6)
43
43
  diff-lcs (1.5.0)
44
- erubi (1.10.0)
44
+ erubi (1.12.0)
45
45
  ffi (1.15.5)
46
- formatador (1.0.0)
46
+ formatador (1.1.0)
47
47
  guard (2.18.0)
48
48
  formatador (>= 0.2.4)
49
49
  listen (>= 2.7, < 4.0)
@@ -58,110 +58,135 @@ GEM
58
58
  guard (~> 2.1)
59
59
  guard-compat (~> 1.1)
60
60
  rspec (>= 2.99.0, < 4.0)
61
- i18n (1.8.11)
61
+ i18n (1.12.0)
62
62
  concurrent-ruby (~> 1.0)
63
- listen (3.7.1)
63
+ json (2.6.3)
64
+ listen (3.8.0)
64
65
  rb-fsevent (~> 0.10, >= 0.10.3)
65
66
  rb-inotify (~> 0.9, >= 0.9.10)
66
- loofah (2.13.0)
67
+ loofah (2.19.1)
67
68
  crass (~> 1.0.2)
68
69
  nokogiri (>= 1.5.9)
69
70
  lumberjack (1.2.8)
70
71
  method_source (1.0.0)
71
- minitest (5.15.0)
72
+ minitest (5.17.0)
72
73
  nenv (0.3.0)
73
- nokogiri (1.13.1-x86_64-darwin)
74
+ nokogiri (1.14.0-aarch64-linux)
75
+ racc (~> 1.4)
76
+ nokogiri (1.14.0-arm64-darwin)
77
+ racc (~> 1.4)
78
+ nokogiri (1.14.0-x86_64-darwin)
79
+ racc (~> 1.4)
80
+ nokogiri (1.14.0-x86_64-linux)
74
81
  racc (~> 1.4)
75
82
  notiffany (0.1.3)
76
83
  nenv (~> 0.1)
77
84
  shellany (~> 0.0)
78
- parallel (1.21.0)
79
- parser (3.1.0.0)
85
+ parallel (1.22.1)
86
+ parser (3.2.0.0)
80
87
  ast (~> 2.4.1)
81
- pry (0.14.1)
88
+ pry (0.14.2)
82
89
  coderay (~> 1.1)
83
90
  method_source (~> 1.0)
84
- racc (1.6.0)
85
- rack (2.2.3)
86
- rack-test (1.1.0)
87
- rack (>= 1.0, < 3)
91
+ racc (1.6.2)
92
+ rack (2.2.6.2)
93
+ rack-test (2.0.2)
94
+ rack (>= 1.3)
88
95
  rails-dom-testing (2.0.3)
89
96
  activesupport (>= 4.2.0)
90
97
  nokogiri (>= 1.6)
91
- rails-html-sanitizer (1.4.2)
92
- loofah (~> 2.3)
93
- railties (7.0.1)
94
- actionpack (= 7.0.1)
95
- activesupport (= 7.0.1)
98
+ rails-html-sanitizer (1.5.0)
99
+ loofah (~> 2.19, >= 2.19.1)
100
+ railties (7.0.4.1)
101
+ actionpack (= 7.0.4.1)
102
+ activesupport (= 7.0.4.1)
96
103
  method_source
97
104
  rake (>= 12.2)
98
105
  thor (~> 1.0)
99
106
  zeitwerk (~> 2.5)
100
107
  rainbow (3.1.1)
101
108
  rake (13.0.6)
102
- rb-fsevent (0.11.0)
109
+ rb-fsevent (0.11.2)
103
110
  rb-inotify (0.10.1)
104
111
  ffi (~> 1.0)
105
- regexp_parser (2.2.0)
112
+ regexp_parser (2.6.2)
106
113
  rexml (3.2.5)
107
- rspec (3.10.0)
108
- rspec-core (~> 3.10.0)
109
- rspec-expectations (~> 3.10.0)
110
- rspec-mocks (~> 3.10.0)
111
- rspec-core (3.10.1)
112
- rspec-support (~> 3.10.0)
113
- rspec-expectations (3.10.2)
114
+ rspec (3.12.0)
115
+ rspec-core (~> 3.12.0)
116
+ rspec-expectations (~> 3.12.0)
117
+ rspec-mocks (~> 3.12.0)
118
+ rspec-core (3.12.0)
119
+ rspec-support (~> 3.12.0)
120
+ rspec-expectations (3.12.2)
114
121
  diff-lcs (>= 1.2.0, < 2.0)
115
- rspec-support (~> 3.10.0)
116
- rspec-mocks (3.10.2)
122
+ rspec-support (~> 3.12.0)
123
+ rspec-mocks (3.12.3)
117
124
  diff-lcs (>= 1.2.0, < 2.0)
118
- rspec-support (~> 3.10.0)
119
- rspec-rails (5.0.2)
120
- actionpack (>= 5.2)
121
- activesupport (>= 5.2)
122
- railties (>= 5.2)
123
- rspec-core (~> 3.10)
124
- rspec-expectations (~> 3.10)
125
- rspec-mocks (~> 3.10)
126
- rspec-support (~> 3.10)
127
- rspec-support (3.10.3)
128
- rubocop (1.25.0)
125
+ rspec-support (~> 3.12.0)
126
+ rspec-rails (6.0.1)
127
+ actionpack (>= 6.1)
128
+ activesupport (>= 6.1)
129
+ railties (>= 6.1)
130
+ rspec-core (~> 3.11)
131
+ rspec-expectations (~> 3.11)
132
+ rspec-mocks (~> 3.11)
133
+ rspec-support (~> 3.11)
134
+ rspec-support (3.12.0)
135
+ rubocop (1.44.0)
136
+ json (~> 2.3)
129
137
  parallel (~> 1.10)
130
- parser (>= 3.1.0.0)
138
+ parser (>= 3.2.0.0)
131
139
  rainbow (>= 2.2.2, < 4.0)
132
140
  regexp_parser (>= 1.8, < 3.0)
133
- rexml
134
- rubocop-ast (>= 1.15.1, < 2.0)
141
+ rexml (>= 3.2.5, < 4.0)
142
+ rubocop-ast (>= 1.24.1, < 2.0)
135
143
  ruby-progressbar (~> 1.7)
136
- unicode-display_width (>= 1.4.0, < 3.0)
137
- rubocop-ast (1.15.1)
138
- parser (>= 3.0.1.1)
144
+ unicode-display_width (>= 2.4.0, < 3.0)
145
+ rubocop-ast (1.24.1)
146
+ parser (>= 3.1.1.0)
147
+ rubocop-capybara (2.17.0)
148
+ rubocop (~> 1.41)
149
+ rubocop-rake (0.6.0)
150
+ rubocop (~> 1.0)
151
+ rubocop-rspec (2.18.0)
152
+ rubocop (~> 1.33)
153
+ rubocop-capybara
139
154
  ruby-progressbar (1.11.0)
140
155
  shellany (0.0.1)
141
- sqlite3 (1.4.2)
156
+ sqlite3 (1.6.0-aarch64-linux)
157
+ sqlite3 (1.6.0-arm64-darwin)
158
+ sqlite3 (1.6.0-x86_64-darwin)
159
+ sqlite3 (1.6.0-x86_64-linux)
142
160
  thor (1.2.1)
143
- tzinfo (2.0.4)
161
+ tzinfo (2.0.5)
144
162
  concurrent-ruby (~> 1.0)
145
- unicode-display_width (2.1.0)
163
+ unicode-display_width (2.4.2)
146
164
  webrick (1.7.0)
147
- yard (0.9.27)
165
+ yard (0.9.28)
148
166
  webrick (~> 1.7.0)
149
- zeitwerk (2.5.3)
167
+ zeitwerk (2.6.6)
150
168
 
151
169
  PLATFORMS
170
+ aarch64-linux
171
+ arm64-darwin-22
152
172
  x86_64-darwin-21
173
+ x86_64-linux
153
174
 
154
175
  DEPENDENCIES
155
176
  bundler (~> 2.0)
156
177
  combustion (~> 1.3)
178
+ guard (~> 2.18)
157
179
  guard-rspec (~> 4.7)
180
+ pry (~> 0.14)
158
181
  pursuit!
159
182
  rake (~> 13.0)
160
- rspec (~> 3.10)
161
- rspec-rails (~> 5.0)
162
- rubocop (~> 1.25)
163
- sqlite3 (~> 1.4)
183
+ rspec (~> 3.12)
184
+ rspec-rails (~> 6.0)
185
+ rubocop (~> 1.44)
186
+ rubocop-rake (~> 0.6)
187
+ rubocop-rspec (~> 2.18)
188
+ sqlite3 (~> 1.6)
164
189
  yard (~> 0.9)
165
190
 
166
191
  BUNDLED WITH
167
- 2.3.3
192
+ 2.4.5
@@ -3,5 +3,5 @@
3
3
  module Pursuit
4
4
  # @return [String] The gem's semantic version number.
5
5
  #
6
- VERSION = '0.4.1'
6
+ VERSION = '0.4.3'
7
7
  end
@@ -41,7 +41,7 @@ module Pursuit
41
41
  return nil if value.blank?
42
42
 
43
43
  sanitized_value = "%#{ActiveRecord::Base.sanitize_sql_like(value)}%"
44
- options.unkeyed_attributes.reduce(nil) do |chain, (attribute_name, node_builder)|
44
+ options.unkeyed_attributes.reduce(nil) do |chain, (_attribute_name, node_builder)|
45
45
  node = node_builder.call.matches(sanitized_value)
46
46
  chain ? chain.or(node) : node
47
47
  end
@@ -65,7 +65,7 @@ module Pursuit
65
65
  end
66
66
  end
67
67
 
68
- def build_arel_for_node(node, operator, value)
68
+ def build_arel_for_node(node, operator, value) # rubocop:disable Metrics/CyclomaticComplexity
69
69
  sanitized_value = ActiveRecord::Base.sanitize_sql_like(value)
70
70
  sanitized_value = sanitized_value.to_i if sanitized_value =~ /^[0-9]+$/
71
71
 
@@ -120,6 +120,7 @@ module Pursuit
120
120
  )
121
121
  end
122
122
 
123
+ # rubocop:disable Metrics/AbcSize
123
124
  def build_arel_for_has_reflection_join(reflection)
124
125
  reflection_table = reflection.klass.arel_table
125
126
  reflection_through = reflection.through_reflection
@@ -143,8 +144,9 @@ module Pursuit
143
144
  )
144
145
  end
145
146
  end
147
+ # rubocop:enable Metrics/AbcSize
146
148
 
147
- def build_arel_for_relation_count(nodes, operator, value)
149
+ def build_arel_for_relation_count(nodes, operator, value) # rubocop:disable Metrics/CyclomaticComplexity
148
150
  node_builder = proc do |klass|
149
151
  count = ActiveRecord::Base.sanitize_sql_like(value).to_i
150
152
  klass.new(nodes.project(Arel.star.count), count)
@@ -28,7 +28,7 @@ module Pursuit
28
28
  @relations = {}
29
29
  @attributes = {}
30
30
 
31
- block.call(self) if block
31
+ block&.call(self)
32
32
  end
33
33
 
34
34
  # @return [Hash<Symbol, Proc>] The attributes which can be queried using a keyed term.
data/pursuit.gemspec CHANGED
@@ -16,21 +16,27 @@ Gem::Specification.new do |spec|
16
16
  spec.license = 'MIT'
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0")
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
19
  spec.require_paths = ['lib']
21
20
 
21
+ spec.required_ruby_version = '>= 2.6.0'
22
+
23
+ spec.metadata['rubygems_mfa_required'] = 'true'
22
24
  spec.metadata['yard.run'] = 'yri'
23
25
 
24
26
  spec.add_runtime_dependency 'activerecord', '>= 5.2.0', '< 7.1.0'
25
27
  spec.add_runtime_dependency 'activesupport', '>= 5.2.0', '< 7.1.0'
26
28
 
27
- spec.add_development_dependency 'bundler', '~> 2.0'
28
- spec.add_development_dependency 'combustion', '~> 1.3'
29
- spec.add_development_dependency 'guard-rspec', '~> 4.7'
30
- spec.add_development_dependency 'rake', '~> 13.0'
31
- spec.add_development_dependency 'rspec', '~> 3.10'
32
- spec.add_development_dependency 'rspec-rails', '~> 5.0'
33
- spec.add_development_dependency 'rubocop', '~> 1.25'
34
- spec.add_development_dependency 'yard', '~> 0.9'
35
- spec.add_development_dependency 'sqlite3', '~> 1.4'
29
+ spec.add_development_dependency 'bundler', '~> 2.0'
30
+ spec.add_development_dependency 'combustion', '~> 1.3'
31
+ spec.add_development_dependency 'guard', '~> 2.18'
32
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
33
+ spec.add_development_dependency 'pry', '~> 0.14'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
+ spec.add_development_dependency 'rspec', '~> 3.12'
36
+ spec.add_development_dependency 'rspec-rails', '~> 6.0'
37
+ spec.add_development_dependency 'rubocop', '~> 1.44'
38
+ spec.add_development_dependency 'rubocop-rake', '~> 0.6'
39
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.18'
40
+ spec.add_development_dependency 'sqlite3', '~> 1.6'
41
+ spec.add_development_dependency 'yard', '~> 0.9'
36
42
  end
@@ -14,9 +14,7 @@ class Product < ActiveRecord::Base
14
14
  o.attribute :description
15
15
  o.attribute :rating, unkeyed: false
16
16
  o.attribute :title_length, unkeyed: false do
17
- Arel::Nodes::NamedFunction.new('LENGTH', [
18
- arel_table[:title]
19
- ])
17
+ Arel::Nodes::NamedFunction.new('LENGTH', [arel_table[:title]])
20
18
  end
21
19
 
22
20
  o.attribute :category, :category_id
File without changes
@@ -5,9 +5,7 @@ RSpec.describe Pursuit::SearchOptions do
5
5
 
6
6
  let(:title_length_node_builder) do
7
7
  proc do
8
- Arel::Nodes::NamedFunction.new('LENGTH', [
9
- Product.arel_table[:title]
10
- ])
8
+ Arel::Nodes::NamedFunction.new('LENGTH', [Product.arel_table[:title]])
11
9
  end
12
10
  end
13
11
 
@@ -88,7 +86,7 @@ RSpec.describe Pursuit::SearchOptions do
88
86
  describe '#attribute' do
89
87
  subject(:attribute) { search_options.attribute(:description) }
90
88
 
91
- it { is_expected.to eq(nil) }
89
+ it { is_expected.to be_nil }
92
90
 
93
91
  it 'is expected to add the attribute to #attributes' do
94
92
  expect { attribute }.to change(search_options.attributes, :keys).from([]).to(%i[description])
@@ -96,12 +94,12 @@ RSpec.describe Pursuit::SearchOptions do
96
94
 
97
95
  it 'is expected to allow keyed searching by default' do
98
96
  attribute
99
- expect(search_options.attributes[:description].keyed).to eq(true)
97
+ expect(search_options.attributes[:description].keyed).to be(true)
100
98
  end
101
99
 
102
100
  it 'is expected to allow unkeyed searching by default' do
103
101
  attribute
104
- expect(search_options.attributes[:description].unkeyed).to eq(true)
102
+ expect(search_options.attributes[:description].unkeyed).to be(true)
105
103
  end
106
104
 
107
105
  it 'is expected to query the #term_name attribute' do
@@ -123,7 +121,7 @@ RSpec.describe Pursuit::SearchOptions do
123
121
 
124
122
  it 'is expected to disallow keyed searching' do
125
123
  attribute
126
- expect(search_options.attributes[:description].keyed).to eq(false)
124
+ expect(search_options.attributes[:description].keyed).to be(false)
127
125
  end
128
126
  end
129
127
 
@@ -132,7 +130,7 @@ RSpec.describe Pursuit::SearchOptions do
132
130
 
133
131
  it 'is expected to disallow unkeyed searching' do
134
132
  attribute
135
- expect(search_options.attributes[:description].unkeyed).to eq(false)
133
+ expect(search_options.attributes[:description].unkeyed).to be(false)
136
134
  end
137
135
  end
138
136
 
@@ -12,9 +12,7 @@ RSpec.describe Pursuit::Search do
12
12
  o.attribute :description
13
13
  o.attribute :rating, unkeyed: false
14
14
  o.attribute :title_length, unkeyed: false do
15
- Arel::Nodes::NamedFunction.new('LENGTH', [
16
- Product.arel_table[:title]
17
- ])
15
+ Arel::Nodes::NamedFunction.new('LENGTH', [Product.arel_table[:title]])
18
16
  end
19
17
 
20
18
  o.attribute :cat, :category_id
@@ -130,7 +128,7 @@ RSpec.describe Pursuit::Search do
130
128
  end
131
129
  end
132
130
 
133
- context 'when passed a `not equal to` keyed attribute query' do
131
+ context 'when passed a numeric `not equal to` keyed attribute query' do
134
132
  let(:query) { 'rating!=2' }
135
133
 
136
134
  let(:product_a) { Product.create!(title: 'Plain Shirt', rating: 2) }
@@ -20,13 +20,15 @@ RSpec.describe Pursuit::SearchTermParser do
20
20
  subject(:keyed_terms) { parser.keyed_terms }
21
21
 
22
22
  it 'is expected to eq the correct keyed terms' do
23
- expect(keyed_terms).to eq([
24
- Pursuit::SearchTermParser::KeyedTerm.new('title', '!=', 'Socks'),
25
- Pursuit::SearchTermParser::KeyedTerm.new('description', '*=', 'green'),
26
- Pursuit::SearchTermParser::KeyedTerm.new('stock_status', '==', 'in_stock'),
27
- Pursuit::SearchTermParser::KeyedTerm.new('rating', '>=', '2'),
28
- Pursuit::SearchTermParser::KeyedTerm.new('rating', '<', '5')
29
- ])
23
+ expect(keyed_terms).to eq(
24
+ [
25
+ Pursuit::SearchTermParser::KeyedTerm.new('title', '!=', 'Socks'),
26
+ Pursuit::SearchTermParser::KeyedTerm.new('description', '*=', 'green'),
27
+ Pursuit::SearchTermParser::KeyedTerm.new('stock_status', '==', 'in_stock'),
28
+ Pursuit::SearchTermParser::KeyedTerm.new('rating', '>=', '2'),
29
+ Pursuit::SearchTermParser::KeyedTerm.new('rating', '<', '5')
30
+ ]
31
+ )
30
32
  end
31
33
  end
32
34
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Pursuit do
4
+ describe '::VERSION' do
5
+ subject(:version) { described_class::VERSION }
6
+
7
+ it 'is expected to be a semantic version' do
8
+ expect(version).to match(/[0-9]+\.[0-9]+\.[0-9]+/)
9
+ end
10
+ end
11
+ end
data/spec/spec_helper.rb CHANGED
@@ -65,7 +65,7 @@ RSpec.configure do |config|
65
65
  config.disable_monkey_patching!
66
66
 
67
67
  # Retrieve the default formatter from the current environment.
68
- default_formatter = ENV['RSPEC_DEFAULT_FORMATTER']
68
+ default_formatter = ENV.fetch('RSPEC_DEFAULT_FORMATTER', nil)
69
69
 
70
70
  if default_formatter.is_a?(String) && !default_formatter.empty?
71
71
  config.default_formatter = default_formatter
@@ -92,4 +92,4 @@ RSpec.configure do |config|
92
92
  Kernel.srand config.seed
93
93
  end
94
94
 
95
- Dir[File.expand_path('support/**/*.rb', __dir__)].each { |path| require(path) }
95
+ Dir[File.expand_path('support/**/*.rb', __dir__)].sort.each { |path| require(path) }
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ gemspec path: '../../'
6
+
7
+ gem 'activerecord', '~> 7.0.0'
8
+ gem 'activesupport', '~> 7.0.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pursuit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nialto Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-31 00:00:00.000000000 Z
11
+ date: 2023-01-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -78,6 +78,20 @@ dependencies:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '1.3'
81
+ - !ruby/object:Gem::Dependency
82
+ name: guard
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '2.18'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '2.18'
81
95
  - !ruby/object:Gem::Dependency
82
96
  name: guard-rspec
83
97
  requirement: !ruby/object:Gem::Requirement
@@ -92,6 +106,20 @@ dependencies:
92
106
  - - "~>"
93
107
  - !ruby/object:Gem::Version
94
108
  version: '4.7'
109
+ - !ruby/object:Gem::Dependency
110
+ name: pry
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '0.14'
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '0.14'
95
123
  - !ruby/object:Gem::Dependency
96
124
  name: rake
97
125
  requirement: !ruby/object:Gem::Requirement
@@ -112,70 +140,98 @@ dependencies:
112
140
  requirements:
113
141
  - - "~>"
114
142
  - !ruby/object:Gem::Version
115
- version: '3.10'
143
+ version: '3.12'
116
144
  type: :development
117
145
  prerelease: false
118
146
  version_requirements: !ruby/object:Gem::Requirement
119
147
  requirements:
120
148
  - - "~>"
121
149
  - !ruby/object:Gem::Version
122
- version: '3.10'
150
+ version: '3.12'
123
151
  - !ruby/object:Gem::Dependency
124
152
  name: rspec-rails
125
153
  requirement: !ruby/object:Gem::Requirement
126
154
  requirements:
127
155
  - - "~>"
128
156
  - !ruby/object:Gem::Version
129
- version: '5.0'
157
+ version: '6.0'
130
158
  type: :development
131
159
  prerelease: false
132
160
  version_requirements: !ruby/object:Gem::Requirement
133
161
  requirements:
134
162
  - - "~>"
135
163
  - !ruby/object:Gem::Version
136
- version: '5.0'
164
+ version: '6.0'
137
165
  - !ruby/object:Gem::Dependency
138
166
  name: rubocop
139
167
  requirement: !ruby/object:Gem::Requirement
140
168
  requirements:
141
169
  - - "~>"
142
170
  - !ruby/object:Gem::Version
143
- version: '1.25'
171
+ version: '1.44'
144
172
  type: :development
145
173
  prerelease: false
146
174
  version_requirements: !ruby/object:Gem::Requirement
147
175
  requirements:
148
176
  - - "~>"
149
177
  - !ruby/object:Gem::Version
150
- version: '1.25'
178
+ version: '1.44'
151
179
  - !ruby/object:Gem::Dependency
152
- name: yard
180
+ name: rubocop-rake
153
181
  requirement: !ruby/object:Gem::Requirement
154
182
  requirements:
155
183
  - - "~>"
156
184
  - !ruby/object:Gem::Version
157
- version: '0.9'
185
+ version: '0.6'
158
186
  type: :development
159
187
  prerelease: false
160
188
  version_requirements: !ruby/object:Gem::Requirement
161
189
  requirements:
162
190
  - - "~>"
163
191
  - !ruby/object:Gem::Version
164
- version: '0.9'
192
+ version: '0.6'
193
+ - !ruby/object:Gem::Dependency
194
+ name: rubocop-rspec
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '2.18'
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: '2.18'
165
207
  - !ruby/object:Gem::Dependency
166
208
  name: sqlite3
167
209
  requirement: !ruby/object:Gem::Requirement
168
210
  requirements:
169
211
  - - "~>"
170
212
  - !ruby/object:Gem::Version
171
- version: '1.4'
213
+ version: '1.6'
172
214
  type: :development
173
215
  prerelease: false
174
216
  version_requirements: !ruby/object:Gem::Requirement
175
217
  requirements:
176
218
  - - "~>"
177
219
  - !ruby/object:Gem::Version
178
- version: '1.4'
220
+ version: '1.6'
221
+ - !ruby/object:Gem::Dependency
222
+ name: yard
223
+ requirement: !ruby/object:Gem::Requirement
224
+ requirements:
225
+ - - "~>"
226
+ - !ruby/object:Gem::Version
227
+ version: '0.9'
228
+ type: :development
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: '0.9'
179
235
  description:
180
236
  email:
181
237
  - support@nialtoservices.co.uk
@@ -212,19 +268,21 @@ files:
212
268
  - spec/internal/config/database.yml
213
269
  - spec/internal/db/schema.rb
214
270
  - spec/internal/log/.keep
215
- - spec/pursuit/constants_spec.rb
216
- - spec/pursuit/dsl_spec.rb
217
- - spec/pursuit/search_options_spec.rb
218
- - spec/pursuit/search_spec.rb
219
- - spec/pursuit/search_term_parser_spec.rb
271
+ - spec/lib/pursuit/dsl_spec.rb
272
+ - spec/lib/pursuit/search_options_spec.rb
273
+ - spec/lib/pursuit/search_spec.rb
274
+ - spec/lib/pursuit/search_term_parser_spec.rb
275
+ - spec/lib/pursuit_spec.rb
220
276
  - spec/spec_helper.rb
221
277
  - travis/gemfiles/5.2.gemfile
222
278
  - travis/gemfiles/6.0.gemfile
223
279
  - travis/gemfiles/6.1.gemfile
280
+ - travis/gemfiles/7.0.gemfile
224
281
  homepage: https://github.com/nialtoservices/pursuit
225
282
  licenses:
226
283
  - MIT
227
284
  metadata:
285
+ rubygems_mfa_required: 'true'
228
286
  yard.run: yri
229
287
  post_install_message:
230
288
  rdoc_options: []
@@ -234,27 +292,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
292
  requirements:
235
293
  - - ">="
236
294
  - !ruby/object:Gem::Version
237
- version: '0'
295
+ version: 2.6.0
238
296
  required_rubygems_version: !ruby/object:Gem::Requirement
239
297
  requirements:
240
298
  - - ">="
241
299
  - !ruby/object:Gem::Version
242
300
  version: '0'
243
301
  requirements: []
244
- rubygems_version: 3.3.3
302
+ rubygems_version: 3.4.1
245
303
  signing_key:
246
304
  specification_version: 4
247
305
  summary: Advanced key-based searching for ActiveRecord objects.
248
- test_files:
249
- - spec/internal/app/models/product.rb
250
- - spec/internal/app/models/product_category.rb
251
- - spec/internal/app/models/product_variation.rb
252
- - spec/internal/config/database.yml
253
- - spec/internal/db/schema.rb
254
- - spec/internal/log/.keep
255
- - spec/pursuit/constants_spec.rb
256
- - spec/pursuit/dsl_spec.rb
257
- - spec/pursuit/search_options_spec.rb
258
- - spec/pursuit/search_spec.rb
259
- - spec/pursuit/search_term_parser_spec.rb
260
- - spec/spec_helper.rb
306
+ test_files: []
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Pursuit do
4
- describe '::VERSION' do
5
- subject { described_class::VERSION }
6
-
7
- it 'is semantic' do
8
- expect(subject).to match(/[0-9]+\.[0-9]+\.[0-9]+/)
9
- end
10
- end
11
- end