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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/README.md +89 -67
- data/lib/unreliable/build_order.rb +35 -1
- data/lib/unreliable/version.rb +1 -1
- data/spec/env_spec.rb +2 -2
- data/spec/examples.txt +39 -14
- data/spec/model_cache_versioning_spec.rb +22 -0
- data/spec/model_indexes_books_spec.rb +15 -0
- data/spec/model_indexes_cats_spec.rb +11 -0
- data/spec/model_indexes_dreams_spec.rb +11 -0
- data/spec/model_indexes_shelves_spec.rb +33 -0
- data/spec/model_joins_spec.rb +27 -0
- data/spec/model_select_spec.rb +6 -6
- data/spec/model_subquery_spec.rb +3 -3
- data/spec/model_update_arel_10_spec.rb +40 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/textual_order_spec.rb +35 -0
- data/spec/version_spec.rb +1 -1
- metadata +14 -20
- data/Appraisals +0 -32
- data/gemfiles/activerecord_5.0.gemfile +0 -8
- data/gemfiles/activerecord_5.0.gemfile.lock +0 -134
- data/gemfiles/activerecord_5.1.gemfile +0 -8
- data/gemfiles/activerecord_5.1.gemfile.lock +0 -134
- data/gemfiles/activerecord_5.2.gemfile +0 -8
- data/gemfiles/activerecord_5.2.gemfile.lock +0 -134
- data/gemfiles/activerecord_6.0.gemfile +0 -7
- data/gemfiles/activerecord_6.0.gemfile.lock +0 -134
- data/gemfiles/activerecord_6.1.gemfile +0 -7
- data/gemfiles/activerecord_6.1.gemfile.lock +0 -133
- data/gemfiles/activerecord_7.0.gemfile +0 -7
- data/gemfiles/activerecord_7.0.gemfile.lock +0 -133
- data/spec/model_update_spec.rb +0 -7
@@ -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
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.
|
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-
|
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.
|
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.
|
150
|
+
version: '1.17'
|
151
151
|
description: |
|
152
152
|
Unreliable helps uncover bugs in Rails apps that rely on ambiguous database ordering.
|
153
|
-
|
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/
|
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:
|
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,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,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,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
|