unreliable 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -1
- data/README.md +86 -68
- data/lib/unreliable/version.rb +1 -1
- data/spec/examples.txt +11 -11
- metadata +4 -17
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0081b3f189f7e459a112514a5c35d69bd903fbdc771b6eccd22bb53add828671'
|
4
|
+
data.tar.gz: 0a5c663105b2f774cb64eb464340e36d8c63d393234e0cb855955487800d501f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 798bef481aad072fa47730866506a6e040d5b99dea6b71f0af5ca86921380f42713b98182c813f7da2a9a152215e9a2a35a730923f10e3e35c389a5ffa78dd68
|
7
|
+
data.tar.gz: 41d0546cf89f4bb0a2c66e98042fb6f27b4a57391ef7e0e25392a1b0a6eaa14064c6f9bd6e12915a05f8425656a62f794d48ab2ab45f08045b2ad3bfa4e79794
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
![CI workflow](https://github.com/jamiemccarthy/unreliable/actions/workflows/ci.yml/badge.svg)
|
4
4
|
![Gem version](https://img.shields.io/gem/v/unreliable)
|
5
5
|
[![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)
|
6
|
-
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa)](
|
6
|
+
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa)](CODE_OF_CONDUCT.md)
|
7
7
|
|
8
|
-
**
|
8
|
+
**The `unreliable` gem forces your ActiveRecord tests not to rely on ambiguous ordering. This makes your app and its tests more robust.**
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
@@ -19,106 +19,94 @@ group :test do
|
|
19
19
|
end
|
20
20
|
```
|
21
21
|
|
22
|
-
|
22
|
+
The next time your test suite runs, it may emit new errors and failures. If so, great!
|
23
23
|
|
24
|
-
## The problem
|
24
|
+
## The problem with orders
|
25
25
|
|
26
|
-
Here's an open secret: relational databases do not guarantee the order results are returned in, without a
|
26
|
+
Here's an [open secret](#references): **relational databases do not guarantee the order results are returned in, without a thorough `ORDER BY` clause.**
|
27
27
|
|
28
|
-
|
28
|
+
If all your ActiveRecord ordering is already unambiguous, congratulations! `unreliable` will have no effect.
|
29
29
|
|
30
|
-
|
30
|
+
But sometimes we think we specified an unambiguous order, but didn't. Maybe we ordered on timestamps, which are usually unique but sometimes not. And the test suite will stay silent as long as our database just happens to return the same order.
|
31
31
|
|
32
|
-
|
32
|
+
If ambiguous ordering is fine for your app's purposes, but your tests rely on a specific order, that's a bug in your tests. Your tests are incorrectly failing -- rarely -- which can be confusing and annoying.
|
33
33
|
|
34
|
-
|
34
|
+
Or, if your Rails code relies on that accidental ordering, that's a bug in your app. Your tests are passing when they should be failing.
|
35
35
|
|
36
|
-
|
36
|
+
In both cases, `unreliable` exposes the problem by making those tests fail most of the time.
|
37
37
|
|
38
|
-
|
38
|
+
## Fixing the new failures
|
39
39
|
|
40
|
-
|
40
|
+
When `unreliable` turns up a new test failure, you fix it in one of two ways. Either relax your test so it stops relying on order, or tighten up your app to specify order rigorously. (In my company's app, it was about 50/50.)
|
41
41
|
|
42
|
-
|
42
|
+
### Relax a test
|
43
43
|
|
44
|
-
|
44
|
+
Take a look at what your test is checking. If you're testing a method or an endpoint that returns a list whose order doesn't matter, you may have written it to expect the order that was returned the first time you ran it. This often happens with fixtures. You might:
|
45
45
|
|
46
|
-
|
46
|
+
* Make your test accept all correct answers. For example, sort an array in the method's response before comparing.
|
47
47
|
|
48
|
-
|
48
|
+
* Help your test suite focus on what you're testing. If your fixtures' "latest" element could change because they don't specify a timestamp, that might be a distraction that's not relevant to how your app works, so you could assign timestamps to the fixtures.
|
49
49
|
|
50
|
-
|
50
|
+
This makes your test suite more robust.
|
51
51
|
|
52
|
-
|
52
|
+
If your test suite is checking generated `.to_sql` against known-good SQL text, `unreliable` isn't helpful. It's easiest to use `Unreliable::Config.disable { ... }` to turn it off for a block.
|
53
53
|
|
54
|
-
|
54
|
+
### Tighten the app
|
55
55
|
|
56
|
-
|
56
|
+
If your app should be returning results in a particular order, and now with `unreliable` it sometimes does not, your test is correct and your app is wrong. Specify order rigorously in your app.
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
Maybe you've defined an ordering this way:
|
58
|
+
Maybe you're testing `Book.reverse_chron.first`, and you've defined that ordering this way:
|
61
59
|
|
62
60
|
```
|
63
|
-
|
64
|
-
|
65
|
-
|
61
|
+
class Book
|
62
|
+
scope :reverse_chron, -> { order(year_published: :desc) }
|
63
|
+
end
|
66
64
|
```
|
67
65
|
|
68
66
|
When you meant to define it unambiguously:
|
69
67
|
|
70
68
|
```
|
71
|
-
|
72
|
-
scope :reverse_chron, -> { order(year_published: :desc, title: :desc) }
|
73
|
-
end
|
69
|
+
scope :reverse_chron, -> { order(year_published: :desc, title: :desc) }
|
74
70
|
```
|
75
71
|
|
76
72
|
Or, if `title` is not unique:
|
77
73
|
|
78
74
|
```
|
79
|
-
|
80
|
-
scope :reverse_chron, -> { order(year_published: :desc, title: :desc, id: :desc) }
|
81
|
-
end
|
75
|
+
scope :reverse_chron, -> { order(year_published: :desc, title: :desc, id: :desc) }
|
82
76
|
```
|
83
77
|
|
84
|
-
|
78
|
+
The problem in this example is easy to see because many books are published each year. But this error can occur at any time granularity.
|
85
79
|
|
86
80
|
## Requirements
|
87
81
|
|
88
|
-
|
82
|
+
`unreliable` is tested to support Ruby 2.6 through 3.1, and Rails 5.0 through 7.0.
|
89
83
|
|
90
|
-
As of
|
84
|
+
As of August 2022, this is all released versions of both that are currently supported, plus several older releases.
|
91
85
|
|
92
|
-
|
86
|
+
`unreliable` depends only on ActiveRecord and Railties. If you have a non-Rails app that uses ActiveRecord, you can still use it.
|
93
87
|
|
94
88
|
## Implementation
|
95
89
|
|
96
|
-
|
97
|
-
|
98
|
-
Unreliable patches `ActiveRecord::QueryMethods#build_arel`, the point where an Arel is converted for use, to append an order to the existing order chain. (The patch is applied after ActiveRecord loads, using `ActiveSupport.on_load`, the standard interface since Rails 4.0.)
|
99
|
-
|
100
|
-
This means that the ORDER BY applies to not just SELECTs but e.g. delete_all and update_all. It also applies within subqueries.
|
90
|
+
`unreliable` does exactly nothing outside of test environments. There is intentionally no way to enable `unreliable` in production, and there never will be.
|
101
91
|
|
102
|
-
|
92
|
+
In a Rails test environment, `unreliable` patches ActiveRecord to always append a final `ORDER BY` clause that returns results in a random order.
|
103
93
|
|
104
|
-
|
94
|
+
Because it's appended, the existing ordering is not affected unless it is ambiguous.
|
105
95
|
|
106
|
-
|
107
|
-
|
108
|
-
The most common ambiguous ordering is an ORDER BY one column that is not unique, like a timestamp.
|
96
|
+
With `unreliable` installed, every ActiveRecord relation invoked by the test suite will have any ambiguity replaced with randomness. Tests that rely on the ordering of two records will break half the time. Tests with three or more break most of the time.
|
109
97
|
|
110
|
-
|
98
|
+
`unreliable` patches `ActiveRecord::QueryMethods#build_arel`, the point where an Arel is converted for use, to append an order to the existing order chain. (The patch is applied after ActiveRecord loads, using `ActiveSupport.on_load`, the standard interface since Rails 4.0.) It works with MySQL, Postgres, and SQLite.
|
111
99
|
|
112
|
-
|
113
|
-
* ORDER BY a column with values that differ only by [character case](https://dev.mysql.com/doc/refman/8.0/en/sorting-rows.html)
|
114
|
-
* ORDER BY values that are identical within the [prefix length limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_sort_length) examined for sorting
|
100
|
+
This means that the `ORDER BY` applies to not just `SELECT` but e.g. `delete_all` and `update_all`. It also applies within subqueries.
|
115
101
|
|
116
|
-
|
102
|
+
The patch is only applied when `Rails.env.test?`, and that boolean is also checked on every invocation, just to make certain it has no effect in any other environment.
|
117
103
|
|
118
104
|
## Contributing
|
119
105
|
|
120
106
|
Thoughts and suggestions are welcome. Please read the code of conduct, then create an issue or pull request on GitHub. If you just have questions, go ahead and open an issue, I'm pretty friendly.
|
121
107
|
|
108
|
+
### Run the gem's tests
|
109
|
+
|
122
110
|
To test locally, against the different versions of ActiveRecord, use Ruby 2.7, the only version currently compatible with all the ActiveRecord versions supported. Install the required gems with:
|
123
111
|
|
124
112
|
```
|
@@ -127,13 +115,13 @@ bundle install
|
|
127
115
|
bundle exec appraisal install
|
128
116
|
```
|
129
117
|
|
130
|
-
Run
|
118
|
+
Run `unreliable`'s linter with:
|
131
119
|
|
132
120
|
```
|
133
121
|
bundle exec standardrb
|
134
122
|
```
|
135
123
|
|
136
|
-
Then you can run
|
124
|
+
Then you can run `unreliable`'s tests with:
|
137
125
|
|
138
126
|
```
|
139
127
|
bundle exec appraisal rake
|
@@ -145,27 +133,57 @@ The GitHub CI workflow in `.github/` ensures those tests are also run against ag
|
|
145
133
|
|
146
134
|
Testing against ActiveRecord is done with [Combustion](https://github.com/pat/combustion), which stands up a local single-table SQLite database and an ActiveRecord-based model for it. This gives more reliable coverage than mocking unit tests within ActiveRecord itself.
|
147
135
|
|
148
|
-
|
136
|
+
### Experiment
|
149
137
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
138
|
+
If you'd like to see `unreliable` in action on a small but real Rails app locally, you can do this:
|
139
|
+
|
140
|
+
1. In a directory next to your `unreliable` working directory, create a `.ruby-version` of `2.7.6` and a 2-line `Gemfile`: `source "https://rubygems.org"`, `gem "rails", "~> 7.0"`
|
141
|
+
2. `bundle install && bundle exec rails new . --force`
|
142
|
+
3. `echo 'gem "unreliable", path: "../unreliable"' >> Gemfile`
|
143
|
+
4. `bundle install && bundle exec rails generate model post title:string body:text`
|
144
|
+
5. `RAILS_ENV=test bundle exec rails db:migrate`
|
145
|
+
6. `RAILS_ENV=test bundle exec rails c`
|
146
|
+
7. You should see SQLite's `ORDER BY RANDOM()` in ActiveRecord queries:
|
159
147
|
|
160
148
|
```
|
161
|
-
|
162
|
-
(
|
163
|
-
SELECT "posts".* FROM "posts" WHERE "posts"."title" =
|
149
|
+
irb(main):001:0> Post.where(title: "abc")
|
150
|
+
(2.1ms) SELECT sqlite_version(*)
|
151
|
+
Post Load (0.3ms) SELECT "posts".* FROM "posts" WHERE "posts"."title" = ? ORDER BY RANDOM() [["title", "abc"]]
|
152
|
+
=> []
|
153
|
+
irb(main):002:0> Post.limit(5).delete_all
|
154
|
+
Post Delete All (0.2ms) DELETE FROM "posts" WHERE "posts"."id" IN (SELECT "posts"."id" FROM "posts" ORDER BY RANDOM() LIMIT ?) [["LIMIT", 5]]
|
155
|
+
=> 0
|
164
156
|
```
|
165
157
|
|
166
|
-
##
|
158
|
+
## Ordering trivia
|
159
|
+
|
160
|
+
The most common ambiguous ordering is an ORDER BY one column that is not unique, like a timestamp.
|
161
|
+
|
162
|
+
But there are other ways you can order a relation but still have your query be ambiguous:
|
163
|
+
|
164
|
+
* ORDER BY multiple columns, but with no subset which is unique
|
165
|
+
* ORDER BY a column with values that differ only by [character case](https://dev.mysql.com/doc/refman/8.0/en/sorting-rows.html)
|
166
|
+
* ORDER BY values that are identical within the [prefix length limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_sort_length) examined for sorting
|
167
|
+
|
168
|
+
`unreliable` correctly tests these because the random order is always appended.
|
169
|
+
|
170
|
+
## References
|
171
|
+
|
172
|
+
SQL standard ([SQL-92](https://web.archive.org/web/20220730144627/https://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt)):
|
173
|
+
|
174
|
+
> When the ordering of a cursor is partially determined by an _order by clause_, then the relative positions of two rows are determined only by the _order by clause_; if the two rows have equal values for the purpose of evaluating the _order by clause_, then their relative positions are implementation-dependent.
|
175
|
+
|
176
|
+
MySQL ([5.6](https://dev.mysql.com/doc/refman/5.6/en/limit-optimization.html), [5.7](https://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html), [8.0](https://dev.mysql.com/doc/refman/8.0/en/limit-optimization.html)):
|
177
|
+
|
178
|
+
> If multiple rows have identical values in the `ORDER BY` columns, the server is free to return those rows in any order, and may do so differently depending on the overall execution plan. In other words, the sort order of those rows is nondeterministic with respect to the nonordered columns.
|
179
|
+
|
180
|
+
Postgres ([12](https://www.postgresql.org/docs/12/sql-select.html#SQL-ORDERBY), [13](https://www.postgresql.org/docs/13/sql-select.html#SQL-ORDERBY), [14](https://www.postgresql.org/docs/14/sql-select.html#SQL-ORDERBY)):
|
181
|
+
|
182
|
+
> If two rows are equal according to the leftmost expression, they are compared according to the next expression and so on. If they are equal according to all specified expressions, they are returned in an implementation-dependent order.
|
183
|
+
|
184
|
+
SQLite ([3.39](https://www.sqlite.org/lang_select.html#the_order_by_clause)):
|
167
185
|
|
168
|
-
|
186
|
+
> The order in which two rows for which all ORDER BY expressions evaluate to equal values are returned is undefined.
|
169
187
|
|
170
188
|
## See also
|
171
189
|
|
data/lib/unreliable/version.rb
CHANGED
data/spec/examples.txt
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
example_id | status | run_time |
|
2
2
|
---------------------------------- | ------ | --------------- |
|
3
|
-
./spec/env_spec.rb[1:1] | passed | 0.
|
4
|
-
./spec/env_spec.rb[1:2] | passed | 0.
|
5
|
-
./spec/model_select_spec.rb[1:1] | passed | 0.
|
6
|
-
./spec/model_select_spec.rb[1:2] | passed | 0.
|
7
|
-
./spec/model_select_spec.rb[1:3] | passed | 0.
|
8
|
-
./spec/model_select_spec.rb[1:4] | passed | 0.
|
9
|
-
./spec/model_subquery_spec.rb[1:1] | passed | 0.
|
10
|
-
./spec/model_update_spec.rb[1:1] | passed | 0.
|
11
|
-
./spec/railtie_spec.rb[1:1] | passed | 0.
|
12
|
-
./spec/railtie_spec.rb[1:2] | passed | 0.
|
13
|
-
./spec/version_spec.rb[1:1] | passed | 0.
|
3
|
+
./spec/env_spec.rb[1:1] | passed | 0.00261 seconds |
|
4
|
+
./spec/env_spec.rb[1:2] | passed | 0.00042 seconds |
|
5
|
+
./spec/model_select_spec.rb[1:1] | passed | 0.00033 seconds |
|
6
|
+
./spec/model_select_spec.rb[1:2] | passed | 0.0005 seconds |
|
7
|
+
./spec/model_select_spec.rb[1:3] | passed | 0.00042 seconds |
|
8
|
+
./spec/model_select_spec.rb[1:4] | passed | 0.00064 seconds |
|
9
|
+
./spec/model_subquery_spec.rb[1:1] | passed | 0.00135 seconds |
|
10
|
+
./spec/model_update_spec.rb[1:1] | passed | 0.00011 seconds |
|
11
|
+
./spec/railtie_spec.rb[1:1] | passed | 0.00064 seconds |
|
12
|
+
./spec/railtie_spec.rb[1:2] | passed | 0.00014 seconds |
|
13
|
+
./spec/version_spec.rb[1:1] | passed | 0.00116 seconds |
|
14
14
|
./spec/version_spec.rb[1:2] | passed | 0.00016 seconds |
|
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.
|
4
|
+
version: 0.1.3
|
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-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -150,31 +150,18 @@ dependencies:
|
|
150
150
|
version: '1.11'
|
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
|
@@ -212,5 +199,5 @@ requirements: []
|
|
212
199
|
rubygems_version: 3.1.6
|
213
200
|
signing_key:
|
214
201
|
specification_version: 4
|
215
|
-
summary:
|
202
|
+
summary: For ActiveRecord tests, surface ambiguous-ordering bugs
|
216
203
|
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
|
@@ -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 (6.0.4.7)
|
12
|
-
actionview (= 6.0.4.7)
|
13
|
-
activesupport (= 6.0.4.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.2.0)
|
18
|
-
actionview (6.0.4.7)
|
19
|
-
activesupport (= 6.0.4.7)
|
20
|
-
builder (~> 3.1)
|
21
|
-
erubi (~> 1.4)
|
22
|
-
rails-dom-testing (~> 2.0)
|
23
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
24
|
-
activemodel (6.0.4.7)
|
25
|
-
activesupport (= 6.0.4.7)
|
26
|
-
activerecord (6.0.4.7)
|
27
|
-
activemodel (= 6.0.4.7)
|
28
|
-
activesupport (= 6.0.4.7)
|
29
|
-
activesupport (6.0.4.7)
|
30
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
31
|
-
i18n (>= 0.7, < 2)
|
32
|
-
minitest (~> 5.1)
|
33
|
-
tzinfo (~> 1.1)
|
34
|
-
zeitwerk (~> 2.2, >= 2.2.2)
|
35
|
-
appraisal (2.4.1)
|
36
|
-
bundler
|
37
|
-
rake
|
38
|
-
thor (>= 0.14.0)
|
39
|
-
ast (2.4.2)
|
40
|
-
builder (3.2.4)
|
41
|
-
combustion (1.3.5)
|
42
|
-
activesupport (>= 3.0.0)
|
43
|
-
railties (>= 3.0.0)
|
44
|
-
thor (>= 0.14.6)
|
45
|
-
concurrent-ruby (1.1.10)
|
46
|
-
crass (1.0.6)
|
47
|
-
diff-lcs (1.5.0)
|
48
|
-
erubi (1.10.0)
|
49
|
-
i18n (1.10.0)
|
50
|
-
concurrent-ruby (~> 1.0)
|
51
|
-
loofah (2.16.0)
|
52
|
-
crass (~> 1.0.2)
|
53
|
-
nokogiri (>= 1.5.9)
|
54
|
-
method_source (1.0.0)
|
55
|
-
minitest (5.15.0)
|
56
|
-
nokogiri (1.13.4-x86_64-linux)
|
57
|
-
racc (~> 1.4)
|
58
|
-
parallel (1.22.1)
|
59
|
-
parser (3.1.2.0)
|
60
|
-
ast (~> 2.4.1)
|
61
|
-
racc (1.6.0)
|
62
|
-
rack (2.2.3)
|
63
|
-
rack-test (1.1.0)
|
64
|
-
rack (>= 1.0, < 3)
|
65
|
-
rails-dom-testing (2.0.3)
|
66
|
-
activesupport (>= 4.2.0)
|
67
|
-
nokogiri (>= 1.6)
|
68
|
-
rails-html-sanitizer (1.4.2)
|
69
|
-
loofah (~> 2.3)
|
70
|
-
railties (6.0.4.7)
|
71
|
-
actionpack (= 6.0.4.7)
|
72
|
-
activesupport (= 6.0.4.7)
|
73
|
-
method_source
|
74
|
-
rake (>= 0.8.7)
|
75
|
-
thor (>= 0.20.3, < 2.0)
|
76
|
-
rainbow (3.1.1)
|
77
|
-
rake (13.0.6)
|
78
|
-
regexp_parser (2.3.1)
|
79
|
-
rexml (3.2.5)
|
80
|
-
rspec (3.11.0)
|
81
|
-
rspec-core (~> 3.11.0)
|
82
|
-
rspec-expectations (~> 3.11.0)
|
83
|
-
rspec-mocks (~> 3.11.0)
|
84
|
-
rspec-core (3.11.0)
|
85
|
-
rspec-support (~> 3.11.0)
|
86
|
-
rspec-expectations (3.11.0)
|
87
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
88
|
-
rspec-support (~> 3.11.0)
|
89
|
-
rspec-mocks (3.11.1)
|
90
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
91
|
-
rspec-support (~> 3.11.0)
|
92
|
-
rspec-support (3.11.0)
|
93
|
-
rubocop (1.28.2)
|
94
|
-
parallel (~> 1.10)
|
95
|
-
parser (>= 3.1.0.0)
|
96
|
-
rainbow (>= 2.2.2, < 4.0)
|
97
|
-
regexp_parser (>= 1.8, < 3.0)
|
98
|
-
rexml
|
99
|
-
rubocop-ast (>= 1.17.0, < 2.0)
|
100
|
-
ruby-progressbar (~> 1.7)
|
101
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
102
|
-
rubocop-ast (1.17.0)
|
103
|
-
parser (>= 3.1.1.0)
|
104
|
-
rubocop-performance (1.13.3)
|
105
|
-
rubocop (>= 1.7.0, < 2.0)
|
106
|
-
rubocop-ast (>= 0.4.0)
|
107
|
-
ruby-progressbar (1.11.0)
|
108
|
-
sqlite3 (1.4.2)
|
109
|
-
standard (1.11.0)
|
110
|
-
rubocop (= 1.28.2)
|
111
|
-
rubocop-performance (= 1.13.3)
|
112
|
-
thor (1.2.1)
|
113
|
-
thread_safe (0.3.6)
|
114
|
-
tzinfo (1.2.9)
|
115
|
-
thread_safe (~> 0.1)
|
116
|
-
unicode-display_width (2.1.0)
|
117
|
-
zeitwerk (2.5.4)
|
118
|
-
|
119
|
-
PLATFORMS
|
120
|
-
x86_64-linux
|
121
|
-
|
122
|
-
DEPENDENCIES
|
123
|
-
activerecord (~> 6.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.4)
|
130
|
-
standard (~> 1.11)
|
131
|
-
unreliable!
|
132
|
-
|
133
|
-
BUNDLED WITH
|
134
|
-
2.3.8
|
@@ -1,133 +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 (6.1.5)
|
12
|
-
actionview (= 6.1.5)
|
13
|
-
activesupport (= 6.1.5)
|
14
|
-
rack (~> 2.0, >= 2.0.9)
|
15
|
-
rack-test (>= 0.6.3)
|
16
|
-
rails-dom-testing (~> 2.0)
|
17
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
18
|
-
actionview (6.1.5)
|
19
|
-
activesupport (= 6.1.5)
|
20
|
-
builder (~> 3.1)
|
21
|
-
erubi (~> 1.4)
|
22
|
-
rails-dom-testing (~> 2.0)
|
23
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
24
|
-
activemodel (6.1.5)
|
25
|
-
activesupport (= 6.1.5)
|
26
|
-
activerecord (6.1.5)
|
27
|
-
activemodel (= 6.1.5)
|
28
|
-
activesupport (= 6.1.5)
|
29
|
-
activesupport (6.1.5)
|
30
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
31
|
-
i18n (>= 1.6, < 2)
|
32
|
-
minitest (>= 5.1)
|
33
|
-
tzinfo (~> 2.0)
|
34
|
-
zeitwerk (~> 2.3)
|
35
|
-
appraisal (2.4.1)
|
36
|
-
bundler
|
37
|
-
rake
|
38
|
-
thor (>= 0.14.0)
|
39
|
-
ast (2.4.2)
|
40
|
-
builder (3.2.4)
|
41
|
-
combustion (1.3.5)
|
42
|
-
activesupport (>= 3.0.0)
|
43
|
-
railties (>= 3.0.0)
|
44
|
-
thor (>= 0.14.6)
|
45
|
-
concurrent-ruby (1.1.10)
|
46
|
-
crass (1.0.6)
|
47
|
-
diff-lcs (1.5.0)
|
48
|
-
erubi (1.10.0)
|
49
|
-
i18n (1.10.0)
|
50
|
-
concurrent-ruby (~> 1.0)
|
51
|
-
loofah (2.16.0)
|
52
|
-
crass (~> 1.0.2)
|
53
|
-
nokogiri (>= 1.5.9)
|
54
|
-
method_source (1.0.0)
|
55
|
-
minitest (5.15.0)
|
56
|
-
nokogiri (1.13.4-x86_64-linux)
|
57
|
-
racc (~> 1.4)
|
58
|
-
parallel (1.22.1)
|
59
|
-
parser (3.1.2.0)
|
60
|
-
ast (~> 2.4.1)
|
61
|
-
racc (1.6.0)
|
62
|
-
rack (2.2.3)
|
63
|
-
rack-test (1.1.0)
|
64
|
-
rack (>= 1.0, < 3)
|
65
|
-
rails-dom-testing (2.0.3)
|
66
|
-
activesupport (>= 4.2.0)
|
67
|
-
nokogiri (>= 1.6)
|
68
|
-
rails-html-sanitizer (1.4.2)
|
69
|
-
loofah (~> 2.3)
|
70
|
-
railties (6.1.5)
|
71
|
-
actionpack (= 6.1.5)
|
72
|
-
activesupport (= 6.1.5)
|
73
|
-
method_source
|
74
|
-
rake (>= 12.2)
|
75
|
-
thor (~> 1.0)
|
76
|
-
rainbow (3.1.1)
|
77
|
-
rake (13.0.6)
|
78
|
-
regexp_parser (2.3.1)
|
79
|
-
rexml (3.2.5)
|
80
|
-
rspec (3.11.0)
|
81
|
-
rspec-core (~> 3.11.0)
|
82
|
-
rspec-expectations (~> 3.11.0)
|
83
|
-
rspec-mocks (~> 3.11.0)
|
84
|
-
rspec-core (3.11.0)
|
85
|
-
rspec-support (~> 3.11.0)
|
86
|
-
rspec-expectations (3.11.0)
|
87
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
88
|
-
rspec-support (~> 3.11.0)
|
89
|
-
rspec-mocks (3.11.1)
|
90
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
91
|
-
rspec-support (~> 3.11.0)
|
92
|
-
rspec-support (3.11.0)
|
93
|
-
rubocop (1.28.2)
|
94
|
-
parallel (~> 1.10)
|
95
|
-
parser (>= 3.1.0.0)
|
96
|
-
rainbow (>= 2.2.2, < 4.0)
|
97
|
-
regexp_parser (>= 1.8, < 3.0)
|
98
|
-
rexml
|
99
|
-
rubocop-ast (>= 1.17.0, < 2.0)
|
100
|
-
ruby-progressbar (~> 1.7)
|
101
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
102
|
-
rubocop-ast (1.17.0)
|
103
|
-
parser (>= 3.1.1.0)
|
104
|
-
rubocop-performance (1.13.3)
|
105
|
-
rubocop (>= 1.7.0, < 2.0)
|
106
|
-
rubocop-ast (>= 0.4.0)
|
107
|
-
ruby-progressbar (1.11.0)
|
108
|
-
sqlite3 (1.4.2)
|
109
|
-
standard (1.11.0)
|
110
|
-
rubocop (= 1.28.2)
|
111
|
-
rubocop-performance (= 1.13.3)
|
112
|
-
thor (1.2.1)
|
113
|
-
tzinfo (2.0.4)
|
114
|
-
concurrent-ruby (~> 1.0)
|
115
|
-
unicode-display_width (2.1.0)
|
116
|
-
zeitwerk (2.5.4)
|
117
|
-
|
118
|
-
PLATFORMS
|
119
|
-
x86_64-linux
|
120
|
-
|
121
|
-
DEPENDENCIES
|
122
|
-
activerecord (~> 6.1.0)
|
123
|
-
appraisal (~> 2.4)
|
124
|
-
bundler (~> 2.1)
|
125
|
-
combustion (~> 1.3)
|
126
|
-
rake (~> 13.0)
|
127
|
-
rspec (~> 3.0)
|
128
|
-
sqlite3 (~> 1.4)
|
129
|
-
standard (~> 1.11)
|
130
|
-
unreliable!
|
131
|
-
|
132
|
-
BUNDLED WITH
|
133
|
-
2.3.8
|
@@ -1,133 +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 (7.0.2.3)
|
12
|
-
actionview (= 7.0.2.3)
|
13
|
-
activesupport (= 7.0.2.3)
|
14
|
-
rack (~> 2.0, >= 2.2.0)
|
15
|
-
rack-test (>= 0.6.3)
|
16
|
-
rails-dom-testing (~> 2.0)
|
17
|
-
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
18
|
-
actionview (7.0.2.3)
|
19
|
-
activesupport (= 7.0.2.3)
|
20
|
-
builder (~> 3.1)
|
21
|
-
erubi (~> 1.4)
|
22
|
-
rails-dom-testing (~> 2.0)
|
23
|
-
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
24
|
-
activemodel (7.0.2.3)
|
25
|
-
activesupport (= 7.0.2.3)
|
26
|
-
activerecord (7.0.2.3)
|
27
|
-
activemodel (= 7.0.2.3)
|
28
|
-
activesupport (= 7.0.2.3)
|
29
|
-
activesupport (7.0.2.3)
|
30
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
31
|
-
i18n (>= 1.6, < 2)
|
32
|
-
minitest (>= 5.1)
|
33
|
-
tzinfo (~> 2.0)
|
34
|
-
appraisal (2.4.1)
|
35
|
-
bundler
|
36
|
-
rake
|
37
|
-
thor (>= 0.14.0)
|
38
|
-
ast (2.4.2)
|
39
|
-
builder (3.2.4)
|
40
|
-
combustion (1.3.5)
|
41
|
-
activesupport (>= 3.0.0)
|
42
|
-
railties (>= 3.0.0)
|
43
|
-
thor (>= 0.14.6)
|
44
|
-
concurrent-ruby (1.1.10)
|
45
|
-
crass (1.0.6)
|
46
|
-
diff-lcs (1.5.0)
|
47
|
-
erubi (1.10.0)
|
48
|
-
i18n (1.10.0)
|
49
|
-
concurrent-ruby (~> 1.0)
|
50
|
-
loofah (2.16.0)
|
51
|
-
crass (~> 1.0.2)
|
52
|
-
nokogiri (>= 1.5.9)
|
53
|
-
method_source (1.0.0)
|
54
|
-
minitest (5.15.0)
|
55
|
-
nokogiri (1.13.4-x86_64-linux)
|
56
|
-
racc (~> 1.4)
|
57
|
-
parallel (1.22.1)
|
58
|
-
parser (3.1.2.0)
|
59
|
-
ast (~> 2.4.1)
|
60
|
-
racc (1.6.0)
|
61
|
-
rack (2.2.3)
|
62
|
-
rack-test (1.1.0)
|
63
|
-
rack (>= 1.0, < 3)
|
64
|
-
rails-dom-testing (2.0.3)
|
65
|
-
activesupport (>= 4.2.0)
|
66
|
-
nokogiri (>= 1.6)
|
67
|
-
rails-html-sanitizer (1.4.2)
|
68
|
-
loofah (~> 2.3)
|
69
|
-
railties (7.0.2.3)
|
70
|
-
actionpack (= 7.0.2.3)
|
71
|
-
activesupport (= 7.0.2.3)
|
72
|
-
method_source
|
73
|
-
rake (>= 12.2)
|
74
|
-
thor (~> 1.0)
|
75
|
-
zeitwerk (~> 2.5)
|
76
|
-
rainbow (3.1.1)
|
77
|
-
rake (13.0.6)
|
78
|
-
regexp_parser (2.3.1)
|
79
|
-
rexml (3.2.5)
|
80
|
-
rspec (3.11.0)
|
81
|
-
rspec-core (~> 3.11.0)
|
82
|
-
rspec-expectations (~> 3.11.0)
|
83
|
-
rspec-mocks (~> 3.11.0)
|
84
|
-
rspec-core (3.11.0)
|
85
|
-
rspec-support (~> 3.11.0)
|
86
|
-
rspec-expectations (3.11.0)
|
87
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
88
|
-
rspec-support (~> 3.11.0)
|
89
|
-
rspec-mocks (3.11.1)
|
90
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
91
|
-
rspec-support (~> 3.11.0)
|
92
|
-
rspec-support (3.11.0)
|
93
|
-
rubocop (1.28.2)
|
94
|
-
parallel (~> 1.10)
|
95
|
-
parser (>= 3.1.0.0)
|
96
|
-
rainbow (>= 2.2.2, < 4.0)
|
97
|
-
regexp_parser (>= 1.8, < 3.0)
|
98
|
-
rexml
|
99
|
-
rubocop-ast (>= 1.17.0, < 2.0)
|
100
|
-
ruby-progressbar (~> 1.7)
|
101
|
-
unicode-display_width (>= 1.4.0, < 3.0)
|
102
|
-
rubocop-ast (1.17.0)
|
103
|
-
parser (>= 3.1.1.0)
|
104
|
-
rubocop-performance (1.13.3)
|
105
|
-
rubocop (>= 1.7.0, < 2.0)
|
106
|
-
rubocop-ast (>= 0.4.0)
|
107
|
-
ruby-progressbar (1.11.0)
|
108
|
-
sqlite3 (1.4.2)
|
109
|
-
standard (1.11.0)
|
110
|
-
rubocop (= 1.28.2)
|
111
|
-
rubocop-performance (= 1.13.3)
|
112
|
-
thor (1.2.1)
|
113
|
-
tzinfo (2.0.4)
|
114
|
-
concurrent-ruby (~> 1.0)
|
115
|
-
unicode-display_width (2.1.0)
|
116
|
-
zeitwerk (2.5.4)
|
117
|
-
|
118
|
-
PLATFORMS
|
119
|
-
x86_64-linux
|
120
|
-
|
121
|
-
DEPENDENCIES
|
122
|
-
activerecord (~> 7.0.0)
|
123
|
-
appraisal (~> 2.4)
|
124
|
-
bundler (~> 2.1)
|
125
|
-
combustion (~> 1.3)
|
126
|
-
rake (~> 13.0)
|
127
|
-
rspec (~> 3.0)
|
128
|
-
sqlite3 (~> 1.4)
|
129
|
-
standard (~> 1.11)
|
130
|
-
unreliable!
|
131
|
-
|
132
|
-
BUNDLED WITH
|
133
|
-
2.3.8
|