auto_increment 1.6.1 → 1.7.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/.github/workflows/ci.yml +47 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +10 -44
- data/.ruby-version +1 -1
- data/Appraisals +9 -6
- data/CHANGELOG.md +120 -0
- data/Gemfile +15 -1
- data/Gemfile.lock +107 -70
- data/Guardfile +3 -3
- data/README.md +252 -28
- data/Rakefile +2 -2
- data/auto_increment.gemspec +16 -29
- data/gemfiles/rails_7_1.gemfile +16 -2
- data/gemfiles/rails_7_1.gemfile.lock +107 -71
- data/gemfiles/rails_7_2.gemfile +22 -0
- data/gemfiles/rails_7_2.gemfile.lock +187 -0
- data/gemfiles/rails_8_0.gemfile +22 -0
- data/gemfiles/rails_8_0.gemfile.lock +191 -0
- data/gemfiles/rails_8_1.gemfile +22 -0
- data/gemfiles/rails_8_1.gemfile.lock +190 -0
- data/lib/auto_increment/active_record.rb +31 -4
- data/lib/auto_increment/incrementor.rb +37 -29
- data/lib/auto_increment/version.rb +1 -1
- data/lib/auto_increment.rb +8 -8
- data/spec/lib/active_record_spec.rb +85 -23
- data/spec/lib/incrementor_spec.rb +139 -21
- data/spec/models/account.rb +2 -0
- data/spec/models/post.rb +6 -0
- data/spec/models/user.rb +4 -4
- data/spec/spec_helper.rb +14 -8
- data/spec/support/active_record.rb +5 -0
- metadata +20 -184
- data/.circleci/config.yml +0 -62
- data/.coveralls.yml +0 -1
- data/gemfiles/rails_6_0.gemfile +0 -8
- data/gemfiles/rails_6_0.gemfile.lock +0 -144
- data/gemfiles/rails_6_1.gemfile +0 -8
- data/gemfiles/rails_6_1.gemfile.lock +0 -143
- data/gemfiles/rails_7_0.gemfile +0 -8
- data/gemfiles/rails_7_0.gemfile.lock +0 -141
- data/spec/db/sync.db +0 -0
data/README.md
CHANGED
|
@@ -1,66 +1,290 @@
|
|
|
1
1
|
# auto_increment
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[](https://codeclimate.com/github/felipediesel/auto_increment)
|
|
3
|
+

|
|
5
4
|
|
|
6
|
-
auto_increment
|
|
5
|
+
[](https://qlty.sh/gh/felipediesel/projects/auto_increment)
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
`auto_increment` automatically generates sequential values for Active Record attributes.
|
|
8
|
+
|
|
9
|
+
Common use cases:
|
|
10
|
+
|
|
11
|
+
- Invoice numbers (`1`, `2`, `3`)
|
|
12
|
+
- Customer numbers (`1000`, `1001`, `1002`)
|
|
13
|
+
- Per-account sequences
|
|
14
|
+
- Letter sequences (`A`, `B`, ..., `Z`, `AA`, `AB`)
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
Without the gem:
|
|
19
|
+
|
|
20
|
+
```rb
|
|
21
|
+
class Invoice < ApplicationRecord
|
|
22
|
+
before_create :set_number
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def set_number
|
|
27
|
+
self.number = Invoice.maximum(:number).to_i + 1
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
With `auto_increment`:
|
|
33
|
+
|
|
34
|
+
```rb
|
|
35
|
+
class Invoice < ApplicationRecord
|
|
36
|
+
auto_increment :number
|
|
37
|
+
end
|
|
38
|
+
```
|
|
9
39
|
|
|
10
|
-
|
|
40
|
+
```rb
|
|
41
|
+
Invoice.create!.number #=> 1
|
|
42
|
+
Invoice.create!.number #=> 2
|
|
43
|
+
Invoice.create!.number #=> 3
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Installation
|
|
11
47
|
|
|
12
|
-
|
|
48
|
+
Add the gem to your Gemfile:
|
|
13
49
|
|
|
14
50
|
```rb
|
|
15
51
|
gem "auto_increment"
|
|
16
52
|
```
|
|
17
53
|
|
|
54
|
+
Then run:
|
|
55
|
+
|
|
56
|
+
```sh
|
|
57
|
+
bundle install
|
|
58
|
+
```
|
|
59
|
+
|
|
18
60
|
## Usage
|
|
19
61
|
|
|
20
|
-
|
|
62
|
+
The target column must exist in your database.
|
|
63
|
+
|
|
64
|
+
```rb
|
|
65
|
+
class Invoice < ApplicationRecord
|
|
66
|
+
auto_increment :number
|
|
67
|
+
end
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Integer Sequences
|
|
71
|
+
|
|
72
|
+
```rb
|
|
73
|
+
class Invoice < ApplicationRecord
|
|
74
|
+
auto_increment :number
|
|
75
|
+
end
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Generated values:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
1
|
|
82
|
+
2
|
|
83
|
+
3
|
|
84
|
+
4
|
|
85
|
+
...
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Custom Starting Value
|
|
89
|
+
|
|
90
|
+
```rb
|
|
91
|
+
class Invoice < ApplicationRecord
|
|
92
|
+
auto_increment :number, initial: 1000
|
|
93
|
+
end
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Generated values:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
1000
|
|
100
|
+
1001
|
|
101
|
+
1002
|
|
102
|
+
...
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### String Sequences
|
|
106
|
+
|
|
107
|
+
```rb
|
|
108
|
+
class User < ApplicationRecord
|
|
109
|
+
auto_increment :code, initial: "A"
|
|
110
|
+
end
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Generated values:
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
A
|
|
117
|
+
B
|
|
118
|
+
C
|
|
119
|
+
...
|
|
120
|
+
Z
|
|
121
|
+
AA
|
|
122
|
+
AB
|
|
123
|
+
...
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
String sequences follow Ruby's [`String#next`](https://ruby-doc.org/3.4/String.html#method-i-next) logic. The column type is inferred from the database schema.
|
|
127
|
+
|
|
128
|
+
> **Deprecation**: Explicitly passing an initial value whose type differs from the database column type is deprecated. For example, `auto_increment :ref, initial: 1` on a `string` column will emit a warning. When `initial` is not set, the default is automatically inferred from the column type (`"1"` for string columns, `1` for integer columns).
|
|
129
|
+
|
|
130
|
+
### Scoped Sequences
|
|
131
|
+
|
|
132
|
+
Generate independent sequences within a scope:
|
|
133
|
+
|
|
134
|
+
```rb
|
|
135
|
+
class Invoice < ApplicationRecord
|
|
136
|
+
auto_increment :number, scope: :account_id
|
|
137
|
+
end
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Result:
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
Account 1: 1, 2, 3
|
|
144
|
+
Account 2: 1, 2, 3
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Multiple scopes are also supported:
|
|
148
|
+
|
|
149
|
+
```rb
|
|
150
|
+
class Invoice < ApplicationRecord
|
|
151
|
+
auto_increment :number,
|
|
152
|
+
scope: [:account_id, :year]
|
|
153
|
+
end
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Result:
|
|
157
|
+
|
|
158
|
+
```text
|
|
159
|
+
Account 1, 2026: 1, 2, 3
|
|
160
|
+
Account 1, 2027: 1, 2, 3
|
|
161
|
+
Account 2, 2026: 1, 2, 3
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Using Model Scopes
|
|
165
|
+
|
|
166
|
+
`model_scope` applies one or more Active Record scopes before calculating the maximum value.
|
|
167
|
+
|
|
168
|
+
This is useful when:
|
|
169
|
+
|
|
170
|
+
- Bypassing a `default_scope`
|
|
171
|
+
- Including archived records
|
|
172
|
+
- Restricting the sequence to a subset of records
|
|
21
173
|
|
|
22
174
|
```rb
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
175
|
+
class User < ApplicationRecord
|
|
176
|
+
default_scope -> { where(active: true) }
|
|
177
|
+
|
|
178
|
+
scope :unscoped_all, -> { unscoped }
|
|
179
|
+
|
|
180
|
+
auto_increment :code,
|
|
181
|
+
scope: :account_id,
|
|
182
|
+
model_scope: :unscoped_all
|
|
27
183
|
end
|
|
28
184
|
```
|
|
29
185
|
|
|
30
|
-
|
|
186
|
+
In this example, the sequence is calculated using all records, including inactive ones.
|
|
187
|
+
|
|
188
|
+
### Callback Timing
|
|
31
189
|
|
|
32
|
-
|
|
190
|
+
By default, values are assigned during `before_create`.
|
|
33
191
|
|
|
34
192
|
```rb
|
|
35
193
|
auto_increment :code
|
|
36
194
|
```
|
|
37
195
|
|
|
38
|
-
|
|
196
|
+
You can change when the value is generated:
|
|
197
|
+
|
|
198
|
+
| Option | Callback |
|
|
199
|
+
| ------------- | ------------------- |
|
|
200
|
+
| `:create` | `before_create` |
|
|
201
|
+
| `:save` | `before_save` |
|
|
202
|
+
| `:validation` | `before_validation` |
|
|
203
|
+
|
|
204
|
+
Example:
|
|
205
|
+
|
|
206
|
+
```rb
|
|
207
|
+
class Account < ApplicationRecord
|
|
208
|
+
auto_increment :code, before: :validation
|
|
209
|
+
|
|
210
|
+
validates :code, presence: true
|
|
211
|
+
end
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Overwriting Existing Values
|
|
215
|
+
|
|
216
|
+
By default, manually assigned values are preserved.
|
|
217
|
+
|
|
218
|
+
```rb
|
|
219
|
+
invoice.number = 500
|
|
220
|
+
invoice.save
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
To always generate a new value:
|
|
224
|
+
|
|
225
|
+
```rb
|
|
226
|
+
auto_increment :number, force: true
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Concurrency
|
|
230
|
+
|
|
231
|
+
For applications that may create records concurrently, enable locking:
|
|
232
|
+
|
|
233
|
+
```rb
|
|
234
|
+
auto_increment :number, lock: true
|
|
235
|
+
```
|
|
39
236
|
|
|
40
|
-
|
|
237
|
+
This locks the record used to determine the next value before assigning it.
|
|
41
238
|
|
|
42
|
-
|
|
239
|
+
## Options
|
|
43
240
|
|
|
44
241
|
```rb
|
|
45
|
-
auto_increment :
|
|
242
|
+
auto_increment :number,
|
|
243
|
+
scope: [:account_id, :year],
|
|
244
|
+
model_scope: :unscoped_all,
|
|
245
|
+
initial: 1000,
|
|
246
|
+
force: true,
|
|
247
|
+
lock: true,
|
|
248
|
+
before: :validation
|
|
46
249
|
```
|
|
47
250
|
|
|
48
|
-
|
|
251
|
+
| Option | Description | Default |
|
|
252
|
+
| ------------- | ------------------------------------------------------------------ | --------- |
|
|
253
|
+
| `column` | Column to increment. Can be integer or string. | `:code` |
|
|
254
|
+
| `initial` | Starting value. Must match the database column type (`Integer` for integer columns, `String` for string columns). When omitted, inferred from the column type. | `1` or `"1"` (inferred) |
|
|
255
|
+
| `scope` | Restricts the sequence to matching column values. | `nil` |
|
|
256
|
+
| `model_scope` | Applies Active Record scopes before calculating the maximum value. | `nil` |
|
|
257
|
+
| `force` | Overwrites an already assigned value. | `false` |
|
|
258
|
+
| `lock` | Enables locking when calculating the next value. | `false` |
|
|
259
|
+
| `before` | Callback timing (`:create`, `:save`, `:validation`). | `:create` |
|
|
49
260
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
261
|
+
## How It Works
|
|
262
|
+
|
|
263
|
+
When a record is created, `auto_increment`:
|
|
264
|
+
|
|
265
|
+
1. Builds a query for the target column.
|
|
266
|
+
2. Applies any configured scopes.
|
|
267
|
+
3. Applies any configured model scopes.
|
|
268
|
+
4. Finds the current maximum value.
|
|
269
|
+
5. Calculates the next value.
|
|
270
|
+
6. Assigns the value during the configured callback.
|
|
271
|
+
|
|
272
|
+
The generated value is stored in a normal database column and can be queried, indexed, and validated like any other attribute.
|
|
56
273
|
|
|
57
274
|
## Compatibility
|
|
58
275
|
|
|
59
|
-
|
|
60
|
-
|
|
276
|
+
| Ruby | Rails |
|
|
277
|
+
| ---- | ------------------ |
|
|
278
|
+
| 3.3 | 7.1, 7.2 |
|
|
279
|
+
| 3.4 | 7.1, 7.2, 8.0, 8.1 |
|
|
280
|
+
| 4.0 | 7.2, 8.0, 8.1 |
|
|
61
281
|
|
|
62
|
-
For older versions, use
|
|
282
|
+
For older Ruby and Rails versions, use:
|
|
283
|
+
|
|
284
|
+
```rb
|
|
285
|
+
gem "auto_increment", "1.5.2"
|
|
286
|
+
```
|
|
63
287
|
|
|
64
288
|
## License
|
|
65
289
|
|
|
66
|
-
|
|
290
|
+
Released under the MIT License. See [LICENSE.txt](LICENSE.txt).
|
data/Rakefile
CHANGED
data/auto_increment.gemspec
CHANGED
|
@@ -1,37 +1,24 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
$LOAD_PATH.push File.expand_path(
|
|
4
|
-
require
|
|
3
|
+
$LOAD_PATH.push File.expand_path("lib", __dir__)
|
|
4
|
+
require "auto_increment/version"
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
|
-
s.name
|
|
8
|
-
s.version
|
|
9
|
-
s.licenses
|
|
10
|
-
s.platform
|
|
11
|
-
s.authors
|
|
12
|
-
s.email
|
|
13
|
-
s.homepage
|
|
14
|
-
s.summary
|
|
15
|
-
s.description =
|
|
7
|
+
s.name = "auto_increment"
|
|
8
|
+
s.version = AutoIncrement::VERSION.dup
|
|
9
|
+
s.licenses = "MIT"
|
|
10
|
+
s.platform = Gem::Platform::RUBY
|
|
11
|
+
s.authors = ["Felipe Diesel"]
|
|
12
|
+
s.email = ["diesel@hey.com"]
|
|
13
|
+
s.homepage = "http://github.com/felipediesel/auto_increment"
|
|
14
|
+
s.summary = "Auto increment a string or integer column"
|
|
15
|
+
s.description = "Automatically increments an ActiveRecord column"
|
|
16
16
|
|
|
17
|
-
s.files
|
|
18
|
-
s.
|
|
19
|
-
s.require_paths = ['lib']
|
|
17
|
+
s.files = `git ls-files`.split("\n")
|
|
18
|
+
s.require_paths = ["lib"]
|
|
20
19
|
|
|
21
|
-
s.add_dependency
|
|
22
|
-
s.add_dependency
|
|
20
|
+
s.add_dependency "activerecord", ">= 7.1"
|
|
21
|
+
s.add_dependency "activesupport", ">= 7.1"
|
|
23
22
|
|
|
24
|
-
s.
|
|
25
|
-
s.add_development_dependency 'rake'
|
|
26
|
-
|
|
27
|
-
s.add_development_dependency 'appraisal'
|
|
28
|
-
s.add_development_dependency 'database_cleaner'
|
|
29
|
-
s.add_development_dependency 'fuubar'
|
|
30
|
-
s.add_development_dependency 'guard'
|
|
31
|
-
s.add_development_dependency 'guard-rspec'
|
|
32
|
-
s.add_development_dependency 'rspec'
|
|
33
|
-
s.add_development_dependency 'rspec-nc'
|
|
34
|
-
s.add_development_dependency 'rubocop'
|
|
35
|
-
|
|
36
|
-
s.add_development_dependency 'sqlite3', '>= 1.3.13'
|
|
23
|
+
s.metadata["rubygems_mfa_required"] = "true"
|
|
37
24
|
end
|
data/gemfiles/rails_7_1.gemfile
CHANGED
|
@@ -2,7 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
source "https://rubygems.org"
|
|
4
4
|
|
|
5
|
-
gem "activerecord", "7.1.
|
|
6
|
-
gem "activesupport", "7.1.
|
|
5
|
+
gem "activerecord", "7.1.6"
|
|
6
|
+
gem "activesupport", "7.1.6"
|
|
7
|
+
|
|
8
|
+
group :development do
|
|
9
|
+
gem "appraisal"
|
|
10
|
+
gem "bundler"
|
|
11
|
+
gem "database_cleaner"
|
|
12
|
+
gem "fuubar"
|
|
13
|
+
gem "guard"
|
|
14
|
+
gem "guard-rspec"
|
|
15
|
+
gem "rake"
|
|
16
|
+
gem "rspec"
|
|
17
|
+
gem "rspec-nc"
|
|
18
|
+
gem "sqlite3", "~> 2.9.5"
|
|
19
|
+
gem "standard"
|
|
20
|
+
end
|
|
7
21
|
|
|
8
22
|
gemspec path: "../"
|
|
@@ -1,56 +1,62 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: ..
|
|
3
3
|
specs:
|
|
4
|
-
auto_increment (1.
|
|
5
|
-
activerecord (>=
|
|
6
|
-
activesupport (>=
|
|
4
|
+
auto_increment (1.7.0)
|
|
5
|
+
activerecord (>= 7.1)
|
|
6
|
+
activesupport (>= 7.1)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
activemodel (7.1.
|
|
12
|
-
activesupport (= 7.1.
|
|
13
|
-
activerecord (7.1.
|
|
14
|
-
activemodel (= 7.1.
|
|
15
|
-
activesupport (= 7.1.
|
|
11
|
+
activemodel (7.1.6)
|
|
12
|
+
activesupport (= 7.1.6)
|
|
13
|
+
activerecord (7.1.6)
|
|
14
|
+
activemodel (= 7.1.6)
|
|
15
|
+
activesupport (= 7.1.6)
|
|
16
16
|
timeout (>= 0.4.0)
|
|
17
|
-
activesupport (7.1.
|
|
17
|
+
activesupport (7.1.6)
|
|
18
18
|
base64
|
|
19
|
+
benchmark (>= 0.3)
|
|
19
20
|
bigdecimal
|
|
20
21
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
21
22
|
connection_pool (>= 2.2.5)
|
|
22
23
|
drb
|
|
23
24
|
i18n (>= 1.6, < 2)
|
|
25
|
+
logger (>= 1.4.2)
|
|
24
26
|
minitest (>= 5.1)
|
|
25
27
|
mutex_m
|
|
28
|
+
securerandom (>= 0.3)
|
|
26
29
|
tzinfo (~> 2.0)
|
|
27
30
|
appraisal (2.5.0)
|
|
28
31
|
bundler
|
|
29
32
|
rake
|
|
30
33
|
thor (>= 0.14.0)
|
|
31
|
-
ast (2.4.
|
|
32
|
-
base64 (0.
|
|
33
|
-
|
|
34
|
+
ast (2.4.3)
|
|
35
|
+
base64 (0.3.0)
|
|
36
|
+
benchmark (0.5.0)
|
|
37
|
+
bigdecimal (4.1.2)
|
|
34
38
|
coderay (1.1.3)
|
|
35
|
-
concurrent-ruby (1.
|
|
36
|
-
connection_pool (
|
|
37
|
-
database_cleaner (2.0
|
|
39
|
+
concurrent-ruby (1.3.7)
|
|
40
|
+
connection_pool (3.0.2)
|
|
41
|
+
database_cleaner (2.1.0)
|
|
38
42
|
database_cleaner-active_record (>= 2, < 3)
|
|
39
|
-
database_cleaner-active_record (2.
|
|
43
|
+
database_cleaner-active_record (2.2.2)
|
|
40
44
|
activerecord (>= 5.a)
|
|
41
|
-
database_cleaner-core (~> 2.0
|
|
42
|
-
database_cleaner-core (2.0
|
|
43
|
-
diff-lcs (1.
|
|
44
|
-
drb (2.2.
|
|
45
|
-
|
|
46
|
-
ffi (1.
|
|
47
|
-
formatador (1.
|
|
45
|
+
database_cleaner-core (~> 2.0)
|
|
46
|
+
database_cleaner-core (2.1.0)
|
|
47
|
+
diff-lcs (1.6.2)
|
|
48
|
+
drb (2.2.3)
|
|
49
|
+
ffi (1.17.4-arm64-darwin)
|
|
50
|
+
ffi (1.17.4-x86_64-linux-gnu)
|
|
51
|
+
formatador (1.2.3)
|
|
52
|
+
reline
|
|
48
53
|
fuubar (2.5.1)
|
|
49
54
|
rspec-core (~> 3.0)
|
|
50
55
|
ruby-progressbar (~> 1.4)
|
|
51
|
-
guard (2.
|
|
56
|
+
guard (2.20.1)
|
|
52
57
|
formatador (>= 0.2.4)
|
|
53
58
|
listen (>= 2.7, < 4.0)
|
|
59
|
+
logger (~> 1.6)
|
|
54
60
|
lumberjack (>= 1.0.12, < 2.0)
|
|
55
61
|
nenv (~> 0.1)
|
|
56
62
|
notiffany (~> 0.0)
|
|
@@ -62,82 +68,112 @@ GEM
|
|
|
62
68
|
guard (~> 2.1)
|
|
63
69
|
guard-compat (~> 1.1)
|
|
64
70
|
rspec (>= 2.99.0, < 4.0)
|
|
65
|
-
i18n (1.
|
|
71
|
+
i18n (1.15.2)
|
|
66
72
|
concurrent-ruby (~> 1.0)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
io-console (0.8.2)
|
|
74
|
+
json (2.20.0)
|
|
75
|
+
language_server-protocol (3.17.0.5)
|
|
76
|
+
lint_roller (1.1.0)
|
|
77
|
+
listen (3.10.0)
|
|
78
|
+
logger
|
|
70
79
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
71
80
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
81
|
+
logger (1.7.0)
|
|
82
|
+
lumberjack (1.4.2)
|
|
83
|
+
method_source (1.1.0)
|
|
84
|
+
minitest (6.0.6)
|
|
85
|
+
drb (~> 2.0)
|
|
86
|
+
prism (~> 1.5)
|
|
87
|
+
mutex_m (0.3.0)
|
|
76
88
|
nenv (0.3.0)
|
|
77
89
|
notiffany (0.1.3)
|
|
78
90
|
nenv (~> 0.1)
|
|
79
91
|
shellany (~> 0.0)
|
|
80
|
-
parallel (1.
|
|
81
|
-
parser (3.
|
|
92
|
+
parallel (2.1.0)
|
|
93
|
+
parser (3.3.11.1)
|
|
82
94
|
ast (~> 2.4.1)
|
|
83
95
|
racc
|
|
84
|
-
|
|
96
|
+
prism (1.9.0)
|
|
97
|
+
pry (0.16.0)
|
|
85
98
|
coderay (~> 1.1)
|
|
86
99
|
method_source (~> 1.0)
|
|
87
|
-
|
|
100
|
+
reline (>= 0.6.0)
|
|
101
|
+
racc (1.8.1)
|
|
88
102
|
rainbow (3.1.1)
|
|
89
|
-
rake (13.
|
|
103
|
+
rake (13.4.2)
|
|
90
104
|
rb-fsevent (0.11.2)
|
|
91
|
-
rb-inotify (0.
|
|
105
|
+
rb-inotify (0.11.1)
|
|
92
106
|
ffi (~> 1.0)
|
|
93
|
-
regexp_parser (2.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
rspec-
|
|
98
|
-
rspec-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
107
|
+
regexp_parser (2.12.0)
|
|
108
|
+
reline (0.6.3)
|
|
109
|
+
io-console (~> 0.5)
|
|
110
|
+
rspec (3.13.2)
|
|
111
|
+
rspec-core (~> 3.13.0)
|
|
112
|
+
rspec-expectations (~> 3.13.0)
|
|
113
|
+
rspec-mocks (~> 3.13.0)
|
|
114
|
+
rspec-core (3.13.6)
|
|
115
|
+
rspec-support (~> 3.13.0)
|
|
116
|
+
rspec-expectations (3.13.5)
|
|
102
117
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
103
|
-
rspec-support (~> 3.
|
|
104
|
-
rspec-mocks (3.
|
|
118
|
+
rspec-support (~> 3.13.0)
|
|
119
|
+
rspec-mocks (3.13.8)
|
|
105
120
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
106
|
-
rspec-support (~> 3.
|
|
121
|
+
rspec-support (~> 3.13.0)
|
|
107
122
|
rspec-nc (0.3.0)
|
|
108
123
|
rspec (>= 3)
|
|
109
124
|
terminal-notifier (>= 1.4)
|
|
110
|
-
rspec-support (3.
|
|
111
|
-
rubocop (1.
|
|
125
|
+
rspec-support (3.13.7)
|
|
126
|
+
rubocop (1.87.0)
|
|
112
127
|
json (~> 2.3)
|
|
113
|
-
language_server-protocol (
|
|
114
|
-
|
|
115
|
-
|
|
128
|
+
language_server-protocol (~> 3.17.0.2)
|
|
129
|
+
lint_roller (~> 1.1.0)
|
|
130
|
+
parallel (>= 1.10)
|
|
131
|
+
parser (>= 3.3.0.2)
|
|
116
132
|
rainbow (>= 2.2.2, < 4.0)
|
|
117
|
-
regexp_parser (>=
|
|
118
|
-
|
|
119
|
-
rubocop-ast (>= 1.30.0, < 2.0)
|
|
133
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
134
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
120
135
|
ruby-progressbar (~> 1.7)
|
|
121
|
-
unicode-display_width (>= 2.4.0, <
|
|
122
|
-
rubocop-ast (1.
|
|
123
|
-
parser (>= 3.
|
|
136
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
137
|
+
rubocop-ast (1.49.1)
|
|
138
|
+
parser (>= 3.3.7.2)
|
|
139
|
+
prism (~> 1.7)
|
|
140
|
+
rubocop-performance (1.26.1)
|
|
141
|
+
lint_roller (~> 1.1)
|
|
142
|
+
rubocop (>= 1.75.0, < 2.0)
|
|
143
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
124
144
|
ruby-progressbar (1.13.0)
|
|
125
|
-
|
|
145
|
+
securerandom (0.4.1)
|
|
126
146
|
shellany (0.0.1)
|
|
127
|
-
sqlite3 (
|
|
147
|
+
sqlite3 (2.9.5-arm64-darwin)
|
|
148
|
+
sqlite3 (2.9.5-x86_64-linux-gnu)
|
|
149
|
+
standard (1.55.0)
|
|
150
|
+
language_server-protocol (~> 3.17.0.2)
|
|
151
|
+
lint_roller (~> 1.0)
|
|
152
|
+
rubocop (~> 1.87.0)
|
|
153
|
+
standard-custom (~> 1.0.0)
|
|
154
|
+
standard-performance (~> 1.8)
|
|
155
|
+
standard-custom (1.0.2)
|
|
156
|
+
lint_roller (~> 1.0)
|
|
157
|
+
rubocop (~> 1.50)
|
|
158
|
+
standard-performance (1.9.0)
|
|
159
|
+
lint_roller (~> 1.1)
|
|
160
|
+
rubocop-performance (~> 1.26.0)
|
|
128
161
|
terminal-notifier (2.0.0)
|
|
129
|
-
thor (1.
|
|
130
|
-
timeout (0.
|
|
162
|
+
thor (1.5.0)
|
|
163
|
+
timeout (0.6.1)
|
|
131
164
|
tzinfo (2.0.6)
|
|
132
165
|
concurrent-ruby (~> 1.0)
|
|
133
|
-
unicode-display_width (2.
|
|
166
|
+
unicode-display_width (3.2.0)
|
|
167
|
+
unicode-emoji (~> 4.1)
|
|
168
|
+
unicode-emoji (4.2.0)
|
|
134
169
|
|
|
135
170
|
PLATFORMS
|
|
136
|
-
arm64-darwin-
|
|
171
|
+
arm64-darwin-24
|
|
172
|
+
x86_64-linux
|
|
137
173
|
|
|
138
174
|
DEPENDENCIES
|
|
139
|
-
activerecord (= 7.1.
|
|
140
|
-
activesupport (= 7.1.
|
|
175
|
+
activerecord (= 7.1.6)
|
|
176
|
+
activesupport (= 7.1.6)
|
|
141
177
|
appraisal
|
|
142
178
|
auto_increment!
|
|
143
179
|
bundler
|
|
@@ -148,8 +184,8 @@ DEPENDENCIES
|
|
|
148
184
|
rake
|
|
149
185
|
rspec
|
|
150
186
|
rspec-nc
|
|
151
|
-
|
|
152
|
-
|
|
187
|
+
sqlite3 (~> 2.9.5)
|
|
188
|
+
standard
|
|
153
189
|
|
|
154
190
|
BUNDLED WITH
|
|
155
191
|
2.4.22
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# This file was generated by Appraisal
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "activerecord", "7.2.3.1"
|
|
6
|
+
gem "activesupport", "7.2.3.1"
|
|
7
|
+
|
|
8
|
+
group :development do
|
|
9
|
+
gem "appraisal"
|
|
10
|
+
gem "bundler"
|
|
11
|
+
gem "database_cleaner"
|
|
12
|
+
gem "fuubar"
|
|
13
|
+
gem "guard"
|
|
14
|
+
gem "guard-rspec"
|
|
15
|
+
gem "rake"
|
|
16
|
+
gem "rspec"
|
|
17
|
+
gem "rspec-nc"
|
|
18
|
+
gem "sqlite3", "~> 2.9.5"
|
|
19
|
+
gem "standard"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
gemspec path: "../"
|