unreliable 0.1.2 → 0.9.0

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.
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ # ActiveRecord's update_all invokes compile_update for the Arel::SelectManager returned
4
+ # by build_arel. It returns an Arel::UpdateManager. This makes sure that internal call
5
+ # assembles the update query correctly.
6
+
7
+ module Unreliable
8
+ class SqlTestingData
9
+ class_attribute :update_manager_sql
10
+ end
11
+ end
12
+
13
+ RSpec.describe "update_manager" do
14
+ it "in ActiveRecord >= 7, updates by subquery with select in random order",
15
+ skip: ((ActiveRecord::VERSION::MAJOR < 7) ? "test is for ActiveRecord >= 7 only" : false) do
16
+ module Arel
17
+ class SelectManager
18
+ def testing_compile_update(*args)
19
+ um = old_compile_update(*args)
20
+ Unreliable::SqlTestingData.update_manager_sql = um.to_sql
21
+ um
22
+ end
23
+ alias_method :old_compile_update, :compile_update
24
+ alias_method :compile_update, :testing_compile_update
25
+ end
26
+ end
27
+ Cat.update_all(name: "bar")
28
+ expect(Unreliable::SqlTestingData.update_manager_sql).to end_with("ORDER BY RANDOM())")
29
+ Cat.where(name: "foo").update_all(name: "bar")
30
+ expect(Unreliable::SqlTestingData.update_manager_sql).to end_with("ORDER BY RANDOM())")
31
+ Cat.where(name: "bar").order(:id).update_all(name: "baz")
32
+ expect(Unreliable::SqlTestingData.update_manager_sql).to end_with("ORDER BY \"cats\".\"id\" ASC)")
33
+ ensure
34
+ module Arel
35
+ class SelectManager
36
+ alias_method :compile_update, :old_compile_update
37
+ end
38
+ end
39
+ end
40
+ end
data/spec/spec_helper.rb CHANGED
@@ -4,6 +4,13 @@ require "bundler"
4
4
 
5
5
  Bundler.require :default, :development
6
6
 
7
+ if ActiveRecord.gem_version >= Gem::Version.new("5.2") && ActiveRecord.gem_version < Gem::Version.new("6.0")
8
+ # This setting was introduced in Rails 5.2, made the default in Rails 6.0, and
9
+ # removed in Rails 6.1.
10
+ require "active_record/connection_adapters/sqlite3_adapter"
11
+ ActiveRecord::ConnectionAdapters::SQLite3Adapter.represent_boolean_as_integer = true
12
+ end
13
+
7
14
  Combustion.initialize! :active_record
8
15
 
9
16
  RSpec.configure do |config|
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe "textual order" do
4
+ it "randomly selects from shelves ordered by textual id asc" do
5
+ expect(Shelf.order("shelf_id ASC").to_sql).to end_with("ORDER BY shelf_id ASC, RANDOM()")
6
+ end
7
+
8
+ it "randomly selects from shelves ordered by fully qualified textual id asc" do
9
+ expect(Shelf.order('"shelves"."shelf_id"').to_sql).to end_with('ORDER BY "shelves"."shelf_id", RANDOM()')
10
+ end
11
+
12
+ it "randomly selects from shelves ordered by textual position asc" do
13
+ expect(Shelf.order("shelf_position ASC").to_sql).to end_with("ORDER BY shelf_position ASC, RANDOM()")
14
+ end
15
+
16
+ it "randomly selects from shelves ordered by textual id desc" do
17
+ expect(Shelf.order("shelf_id DESC").to_sql).to end_with("ORDER BY shelf_id DESC, RANDOM()")
18
+ end
19
+
20
+ it "randomly selects from shelves ordered by textual position desc" do
21
+ expect(Shelf.order("shelf_position DESC").to_sql).to end_with("ORDER BY shelf_position DESC, RANDOM()")
22
+ end
23
+
24
+ it "randomly selects from shelves ordered by textual id and position asc" do
25
+ expect(Shelf.order("shelf_id ASC, shelf_position ASC").to_sql).to end_with(
26
+ "ORDER BY shelf_id ASC, shelf_position ASC, RANDOM()"
27
+ )
28
+ end
29
+
30
+ it "randomly selects from shelves ordered by textual id and position desc" do
31
+ expect(Shelf.order("shelf_id DESC, shelf_position DESC").to_sql).to end_with(
32
+ "ORDER BY shelf_id DESC, shelf_position DESC, RANDOM()"
33
+ )
34
+ end
35
+ end
data/spec/version_spec.rb CHANGED
@@ -8,6 +8,6 @@ RSpec.describe Unreliable, "version" do
8
8
  end
9
9
 
10
10
  it "is correct" do
11
- expect(Unreliable::VERSION).to start_with "0.1."
11
+ expect(Unreliable::VERSION).to start_with "0."
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unreliable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James McCarthy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-27 00:00:00.000000000 Z
11
+ date: 2022-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -140,41 +140,28 @@ dependencies:
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: '1.11'
143
+ version: '1.17'
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: '1.11'
150
+ version: '1.17'
151
151
  description: |
152
152
  Unreliable helps uncover bugs in Rails apps that rely on ambiguous database ordering.
153
- With it installed, a test suite is less likely to accidentally succeed.
153
+ Installing it makes both your app and your test suite more robust.
154
154
  email: jamie@mccarthy.vg
155
155
  executables: []
156
156
  extensions: []
157
157
  extra_rdoc_files: []
158
158
  files:
159
- - Appraisals
160
159
  - CHANGELOG.md
161
160
  - CODE_OF_CONDUCT.md
162
161
  - Gemfile
163
162
  - LICENSE
164
163
  - README.md
165
164
  - Rakefile
166
- - gemfiles/activerecord_5.0.gemfile
167
- - gemfiles/activerecord_5.0.gemfile.lock
168
- - gemfiles/activerecord_5.1.gemfile
169
- - gemfiles/activerecord_5.1.gemfile.lock
170
- - gemfiles/activerecord_5.2.gemfile
171
- - gemfiles/activerecord_5.2.gemfile.lock
172
- - gemfiles/activerecord_6.0.gemfile
173
- - gemfiles/activerecord_6.0.gemfile.lock
174
- - gemfiles/activerecord_6.1.gemfile
175
- - gemfiles/activerecord_6.1.gemfile.lock
176
- - gemfiles/activerecord_7.0.gemfile
177
- - gemfiles/activerecord_7.0.gemfile.lock
178
165
  - lib/unreliable.rb
179
166
  - lib/unreliable/build_order.rb
180
167
  - lib/unreliable/config.rb
@@ -182,11 +169,18 @@ files:
182
169
  - lib/unreliable/version.rb
183
170
  - spec/env_spec.rb
184
171
  - spec/examples.txt
172
+ - spec/model_cache_versioning_spec.rb
173
+ - spec/model_indexes_books_spec.rb
174
+ - spec/model_indexes_cats_spec.rb
175
+ - spec/model_indexes_dreams_spec.rb
176
+ - spec/model_indexes_shelves_spec.rb
177
+ - spec/model_joins_spec.rb
185
178
  - spec/model_select_spec.rb
186
179
  - spec/model_subquery_spec.rb
187
- - spec/model_update_spec.rb
180
+ - spec/model_update_arel_10_spec.rb
188
181
  - spec/railtie_spec.rb
189
182
  - spec/spec_helper.rb
183
+ - spec/textual_order_spec.rb
190
184
  - spec/version_spec.rb
191
185
  homepage: https://github.com/jamiemccarthy/unreliable
192
186
  licenses:
@@ -212,5 +206,5 @@ requirements: []
212
206
  rubygems_version: 3.1.6
213
207
  signing_key:
214
208
  specification_version: 4
215
- summary: Randomize relation final order for tests
209
+ summary: For ActiveRecord tests, surface ambiguous-ordering bugs
216
210
  test_files: []
data/Appraisals DELETED
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # The appraisal gem seems to be a convenient way to use this small config file to
4
- # build the gemfiles/* for the GitHub CI matrix.
5
- # Any `bundle update/install` should be accompanied by `bundle exec appraisal update/install`
6
-
7
- appraise "activerecord-5.0" do
8
- gem "activerecord", "~> 5.0.0"
9
- gem "sqlite3", "~> 1.3.6"
10
- end
11
-
12
- appraise "activerecord-5.1" do
13
- gem "activerecord", "~> 5.1.0"
14
- gem "sqlite3", "~> 1.3.6"
15
- end
16
-
17
- appraise "activerecord-5.2" do
18
- gem "activerecord", "~> 5.2.0"
19
- gem "sqlite3", "~> 1.3.6"
20
- end
21
-
22
- appraise "activerecord-6.0" do
23
- gem "activerecord", "~> 6.0.0"
24
- end
25
-
26
- appraise "activerecord-6.1" do
27
- gem "activerecord", "~> 6.1.0"
28
- end
29
-
30
- appraise "activerecord-7.0" do
31
- gem "activerecord", "~> 7.0.0"
32
- end
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.0.0"
6
- gem "sqlite3", "~> 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,134 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- unreliable (0.1.2)
5
- activerecord (>= 5.0, < 8.0)
6
- railties (>= 5.0, < 8.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (5.0.7.2)
12
- actionview (= 5.0.7.2)
13
- activesupport (= 5.0.7.2)
14
- rack (~> 2.0)
15
- rack-test (~> 0.6.3)
16
- rails-dom-testing (~> 2.0)
17
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
18
- actionview (5.0.7.2)
19
- activesupport (= 5.0.7.2)
20
- builder (~> 3.1)
21
- erubis (~> 2.7.0)
22
- rails-dom-testing (~> 2.0)
23
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
24
- activemodel (5.0.7.2)
25
- activesupport (= 5.0.7.2)
26
- activerecord (5.0.7.2)
27
- activemodel (= 5.0.7.2)
28
- activesupport (= 5.0.7.2)
29
- arel (~> 7.0)
30
- activesupport (5.0.7.2)
31
- concurrent-ruby (~> 1.0, >= 1.0.2)
32
- i18n (>= 0.7, < 2)
33
- minitest (~> 5.1)
34
- tzinfo (~> 1.1)
35
- appraisal (2.4.1)
36
- bundler
37
- rake
38
- thor (>= 0.14.0)
39
- arel (7.1.4)
40
- ast (2.4.2)
41
- builder (3.2.4)
42
- combustion (1.3.5)
43
- activesupport (>= 3.0.0)
44
- railties (>= 3.0.0)
45
- thor (>= 0.14.6)
46
- concurrent-ruby (1.1.10)
47
- crass (1.0.6)
48
- diff-lcs (1.5.0)
49
- erubis (2.7.0)
50
- i18n (1.10.0)
51
- concurrent-ruby (~> 1.0)
52
- loofah (2.16.0)
53
- crass (~> 1.0.2)
54
- nokogiri (>= 1.5.9)
55
- method_source (1.0.0)
56
- minitest (5.15.0)
57
- nokogiri (1.13.4-x86_64-linux)
58
- racc (~> 1.4)
59
- parallel (1.22.1)
60
- parser (3.1.2.0)
61
- ast (~> 2.4.1)
62
- racc (1.6.0)
63
- rack (2.2.3)
64
- rack-test (0.6.3)
65
- rack (>= 1.0)
66
- rails-dom-testing (2.0.3)
67
- activesupport (>= 4.2.0)
68
- nokogiri (>= 1.6)
69
- rails-html-sanitizer (1.4.2)
70
- loofah (~> 2.3)
71
- railties (5.0.7.2)
72
- actionpack (= 5.0.7.2)
73
- activesupport (= 5.0.7.2)
74
- method_source
75
- rake (>= 0.8.7)
76
- thor (>= 0.18.1, < 2.0)
77
- rainbow (3.1.1)
78
- rake (13.0.6)
79
- regexp_parser (2.3.1)
80
- rexml (3.2.5)
81
- rspec (3.11.0)
82
- rspec-core (~> 3.11.0)
83
- rspec-expectations (~> 3.11.0)
84
- rspec-mocks (~> 3.11.0)
85
- rspec-core (3.11.0)
86
- rspec-support (~> 3.11.0)
87
- rspec-expectations (3.11.0)
88
- diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.11.0)
90
- rspec-mocks (3.11.1)
91
- diff-lcs (>= 1.2.0, < 2.0)
92
- rspec-support (~> 3.11.0)
93
- rspec-support (3.11.0)
94
- rubocop (1.28.2)
95
- parallel (~> 1.10)
96
- parser (>= 3.1.0.0)
97
- rainbow (>= 2.2.2, < 4.0)
98
- regexp_parser (>= 1.8, < 3.0)
99
- rexml
100
- rubocop-ast (>= 1.17.0, < 2.0)
101
- ruby-progressbar (~> 1.7)
102
- unicode-display_width (>= 1.4.0, < 3.0)
103
- rubocop-ast (1.17.0)
104
- parser (>= 3.1.1.0)
105
- rubocop-performance (1.13.3)
106
- rubocop (>= 1.7.0, < 2.0)
107
- rubocop-ast (>= 0.4.0)
108
- ruby-progressbar (1.11.0)
109
- sqlite3 (1.3.13)
110
- standard (1.11.0)
111
- rubocop (= 1.28.2)
112
- rubocop-performance (= 1.13.3)
113
- thor (1.2.1)
114
- thread_safe (0.3.6)
115
- tzinfo (1.2.9)
116
- thread_safe (~> 0.1)
117
- unicode-display_width (2.1.0)
118
-
119
- PLATFORMS
120
- x86_64-linux
121
-
122
- DEPENDENCIES
123
- activerecord (~> 5.0.0)
124
- appraisal (~> 2.4)
125
- bundler (~> 2.1)
126
- combustion (~> 1.3)
127
- rake (~> 13.0)
128
- rspec (~> 3.0)
129
- sqlite3 (~> 1.3.6)
130
- standard (~> 1.11)
131
- unreliable!
132
-
133
- BUNDLED WITH
134
- 2.3.8
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.1.0"
6
- gem "sqlite3", "~> 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,134 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- unreliable (0.1.2)
5
- activerecord (>= 5.0, < 8.0)
6
- railties (>= 5.0, < 8.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (5.1.7)
12
- actionview (= 5.1.7)
13
- activesupport (= 5.1.7)
14
- rack (~> 2.0)
15
- rack-test (>= 0.6.3)
16
- rails-dom-testing (~> 2.0)
17
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
18
- actionview (5.1.7)
19
- activesupport (= 5.1.7)
20
- builder (~> 3.1)
21
- erubi (~> 1.4)
22
- rails-dom-testing (~> 2.0)
23
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
24
- activemodel (5.1.7)
25
- activesupport (= 5.1.7)
26
- activerecord (5.1.7)
27
- activemodel (= 5.1.7)
28
- activesupport (= 5.1.7)
29
- arel (~> 8.0)
30
- activesupport (5.1.7)
31
- concurrent-ruby (~> 1.0, >= 1.0.2)
32
- i18n (>= 0.7, < 2)
33
- minitest (~> 5.1)
34
- tzinfo (~> 1.1)
35
- appraisal (2.4.1)
36
- bundler
37
- rake
38
- thor (>= 0.14.0)
39
- arel (8.0.0)
40
- ast (2.4.2)
41
- builder (3.2.4)
42
- combustion (1.3.5)
43
- activesupport (>= 3.0.0)
44
- railties (>= 3.0.0)
45
- thor (>= 0.14.6)
46
- concurrent-ruby (1.1.10)
47
- crass (1.0.6)
48
- diff-lcs (1.5.0)
49
- erubi (1.10.0)
50
- i18n (1.10.0)
51
- concurrent-ruby (~> 1.0)
52
- loofah (2.16.0)
53
- crass (~> 1.0.2)
54
- nokogiri (>= 1.5.9)
55
- method_source (1.0.0)
56
- minitest (5.15.0)
57
- nokogiri (1.13.4-x86_64-linux)
58
- racc (~> 1.4)
59
- parallel (1.22.1)
60
- parser (3.1.2.0)
61
- ast (~> 2.4.1)
62
- racc (1.6.0)
63
- rack (2.2.3)
64
- rack-test (1.1.0)
65
- rack (>= 1.0, < 3)
66
- rails-dom-testing (2.0.3)
67
- activesupport (>= 4.2.0)
68
- nokogiri (>= 1.6)
69
- rails-html-sanitizer (1.4.2)
70
- loofah (~> 2.3)
71
- railties (5.1.7)
72
- actionpack (= 5.1.7)
73
- activesupport (= 5.1.7)
74
- method_source
75
- rake (>= 0.8.7)
76
- thor (>= 0.18.1, < 2.0)
77
- rainbow (3.1.1)
78
- rake (13.0.6)
79
- regexp_parser (2.3.1)
80
- rexml (3.2.5)
81
- rspec (3.11.0)
82
- rspec-core (~> 3.11.0)
83
- rspec-expectations (~> 3.11.0)
84
- rspec-mocks (~> 3.11.0)
85
- rspec-core (3.11.0)
86
- rspec-support (~> 3.11.0)
87
- rspec-expectations (3.11.0)
88
- diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.11.0)
90
- rspec-mocks (3.11.1)
91
- diff-lcs (>= 1.2.0, < 2.0)
92
- rspec-support (~> 3.11.0)
93
- rspec-support (3.11.0)
94
- rubocop (1.28.2)
95
- parallel (~> 1.10)
96
- parser (>= 3.1.0.0)
97
- rainbow (>= 2.2.2, < 4.0)
98
- regexp_parser (>= 1.8, < 3.0)
99
- rexml
100
- rubocop-ast (>= 1.17.0, < 2.0)
101
- ruby-progressbar (~> 1.7)
102
- unicode-display_width (>= 1.4.0, < 3.0)
103
- rubocop-ast (1.17.0)
104
- parser (>= 3.1.1.0)
105
- rubocop-performance (1.13.3)
106
- rubocop (>= 1.7.0, < 2.0)
107
- rubocop-ast (>= 0.4.0)
108
- ruby-progressbar (1.11.0)
109
- sqlite3 (1.3.13)
110
- standard (1.11.0)
111
- rubocop (= 1.28.2)
112
- rubocop-performance (= 1.13.3)
113
- thor (1.2.1)
114
- thread_safe (0.3.6)
115
- tzinfo (1.2.9)
116
- thread_safe (~> 0.1)
117
- unicode-display_width (2.1.0)
118
-
119
- PLATFORMS
120
- x86_64-linux
121
-
122
- DEPENDENCIES
123
- activerecord (~> 5.1.0)
124
- appraisal (~> 2.4)
125
- bundler (~> 2.1)
126
- combustion (~> 1.3)
127
- rake (~> 13.0)
128
- rspec (~> 3.0)
129
- sqlite3 (~> 1.3.6)
130
- standard (~> 1.11)
131
- unreliable!
132
-
133
- BUNDLED WITH
134
- 2.3.8
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 5.2.0"
6
- gem "sqlite3", "~> 1.3.6"
7
-
8
- gemspec path: "../"
@@ -1,134 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- unreliable (0.1.2)
5
- activerecord (>= 5.0, < 8.0)
6
- railties (>= 5.0, < 8.0)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- actionpack (5.2.7)
12
- actionview (= 5.2.7)
13
- activesupport (= 5.2.7)
14
- rack (~> 2.0, >= 2.0.8)
15
- rack-test (>= 0.6.3)
16
- rails-dom-testing (~> 2.0)
17
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
18
- actionview (5.2.7)
19
- activesupport (= 5.2.7)
20
- builder (~> 3.1)
21
- erubi (~> 1.4)
22
- rails-dom-testing (~> 2.0)
23
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
24
- activemodel (5.2.7)
25
- activesupport (= 5.2.7)
26
- activerecord (5.2.7)
27
- activemodel (= 5.2.7)
28
- activesupport (= 5.2.7)
29
- arel (>= 9.0)
30
- activesupport (5.2.7)
31
- concurrent-ruby (~> 1.0, >= 1.0.2)
32
- i18n (>= 0.7, < 2)
33
- minitest (~> 5.1)
34
- tzinfo (~> 1.1)
35
- appraisal (2.4.1)
36
- bundler
37
- rake
38
- thor (>= 0.14.0)
39
- arel (9.0.0)
40
- ast (2.4.2)
41
- builder (3.2.4)
42
- combustion (1.3.5)
43
- activesupport (>= 3.0.0)
44
- railties (>= 3.0.0)
45
- thor (>= 0.14.6)
46
- concurrent-ruby (1.1.10)
47
- crass (1.0.6)
48
- diff-lcs (1.5.0)
49
- erubi (1.10.0)
50
- i18n (1.10.0)
51
- concurrent-ruby (~> 1.0)
52
- loofah (2.16.0)
53
- crass (~> 1.0.2)
54
- nokogiri (>= 1.5.9)
55
- method_source (1.0.0)
56
- minitest (5.15.0)
57
- nokogiri (1.13.4-x86_64-linux)
58
- racc (~> 1.4)
59
- parallel (1.22.1)
60
- parser (3.1.2.0)
61
- ast (~> 2.4.1)
62
- racc (1.6.0)
63
- rack (2.2.3)
64
- rack-test (1.1.0)
65
- rack (>= 1.0, < 3)
66
- rails-dom-testing (2.0.3)
67
- activesupport (>= 4.2.0)
68
- nokogiri (>= 1.6)
69
- rails-html-sanitizer (1.4.2)
70
- loofah (~> 2.3)
71
- railties (5.2.7)
72
- actionpack (= 5.2.7)
73
- activesupport (= 5.2.7)
74
- method_source
75
- rake (>= 0.8.7)
76
- thor (>= 0.19.0, < 2.0)
77
- rainbow (3.1.1)
78
- rake (13.0.6)
79
- regexp_parser (2.3.1)
80
- rexml (3.2.5)
81
- rspec (3.11.0)
82
- rspec-core (~> 3.11.0)
83
- rspec-expectations (~> 3.11.0)
84
- rspec-mocks (~> 3.11.0)
85
- rspec-core (3.11.0)
86
- rspec-support (~> 3.11.0)
87
- rspec-expectations (3.11.0)
88
- diff-lcs (>= 1.2.0, < 2.0)
89
- rspec-support (~> 3.11.0)
90
- rspec-mocks (3.11.1)
91
- diff-lcs (>= 1.2.0, < 2.0)
92
- rspec-support (~> 3.11.0)
93
- rspec-support (3.11.0)
94
- rubocop (1.28.2)
95
- parallel (~> 1.10)
96
- parser (>= 3.1.0.0)
97
- rainbow (>= 2.2.2, < 4.0)
98
- regexp_parser (>= 1.8, < 3.0)
99
- rexml
100
- rubocop-ast (>= 1.17.0, < 2.0)
101
- ruby-progressbar (~> 1.7)
102
- unicode-display_width (>= 1.4.0, < 3.0)
103
- rubocop-ast (1.17.0)
104
- parser (>= 3.1.1.0)
105
- rubocop-performance (1.13.3)
106
- rubocop (>= 1.7.0, < 2.0)
107
- rubocop-ast (>= 0.4.0)
108
- ruby-progressbar (1.11.0)
109
- sqlite3 (1.3.13)
110
- standard (1.11.0)
111
- rubocop (= 1.28.2)
112
- rubocop-performance (= 1.13.3)
113
- thor (1.2.1)
114
- thread_safe (0.3.6)
115
- tzinfo (1.2.9)
116
- thread_safe (~> 0.1)
117
- unicode-display_width (2.1.0)
118
-
119
- PLATFORMS
120
- x86_64-linux
121
-
122
- DEPENDENCIES
123
- activerecord (~> 5.2.0)
124
- appraisal (~> 2.4)
125
- bundler (~> 2.1)
126
- combustion (~> 1.3)
127
- rake (~> 13.0)
128
- rspec (~> 3.0)
129
- sqlite3 (~> 1.3.6)
130
- standard (~> 1.11)
131
- unreliable!
132
-
133
- BUNDLED WITH
134
- 2.3.8
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "activerecord", "~> 6.0.0"
6
-
7
- gemspec path: "../"