auto_increment 1.6.2 → 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.
data/README.md CHANGED
@@ -1,66 +1,290 @@
1
1
  # auto_increment
2
2
 
3
- [![CircleCI](https://dl.circleci.com/status-badge/img/gh/felipediesel/auto_increment/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/felipediesel/auto_increment/tree/master)
4
- [![Code Climate](https://codeclimate.com/github/felipediesel/auto_increment/badges/gpa.svg)](https://codeclimate.com/github/felipediesel/auto_increment)
3
+ ![CI status](https://github.com/felipediesel/auto_increment/actions/workflows/ci.yml/badge.svg?branch=main)
5
4
 
6
- auto_increment provides automatic incrementation for a integer or string fields in Rails.
5
+ [![Maintainability](https://qlty.sh/gh/felipediesel/projects/auto_increment/maintainability.svg)](https://qlty.sh/gh/felipediesel/projects/auto_increment)
7
6
 
8
- ## Installation
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
- You can use auto_increment as a gem from Rails 4.2 to Rails 6.1.
40
+ ```rb
41
+ Invoice.create!.number #=> 1
42
+ Invoice.create!.number #=> 2
43
+ Invoice.create!.number #=> 3
44
+ ```
45
+
46
+ ## Installation
11
47
 
12
- To use the gem version, put the following gem requirement in your `Gemfile`:
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
- To work with a auto increment column you used to do something like this in your model:
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
- before_create :set_code
24
- def set_code
25
- max_code = Operation.maximum(:code)
26
- self.code = max_code.to_i + 1
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
- Looks fine, but not when you need to do it over and over again. In fact auto_increment does it under the cover.
186
+ In this example, the sequence is calculated using all records, including inactive ones.
187
+
188
+ ### Callback Timing
31
189
 
32
- All you need to do is this:
190
+ By default, values are assigned during `before_create`.
33
191
 
34
192
  ```rb
35
193
  auto_increment :code
36
194
  ```
37
195
 
38
- And your code field will be incremented
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
- ## Customizing
237
+ This locks the record used to determine the next value before assigning it.
41
238
 
42
- So you have a different column or need a scope. auto_increment provides options. You can use it like this:
239
+ ## Options
43
240
 
44
241
  ```rb
45
- auto_increment :letter, scope: [:account_id, :job_id], model_scope: :in_account, initial: 'C', force: true, lock: false, before: :create
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
- First argument is the column that will be incremented. Can be integer or string.
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
- - scope: you can define columns that will be scoped and you can use as many as you want (default: nil)
51
- - model_scope: you can define model scopes that will be executed and you can use as many as you want (default: nil)
52
- - initial: initial value of column (default: 1)
53
- - force: you can set a value before create and auto_increment will not change that, but if you do want this, set force to true (default: false)
54
- - lock: you can set a lock on the max query. (default: false)
55
- - before: you can choose a different callback to be used (:create, :save, :validation) (default: create)
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
- Tested with Rails 6.1, 6 in Ruby 2.7.7.
60
- Tested with Rails 7.1, 7, 6.1, 6 in Ruby 3.2.2.
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 version 1.5.2.
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
- [MIT License](LICENSE.txt)
290
+ Released under the MIT License. See [LICENSE.txt](LICENSE.txt).
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rspec/core/rake_task'
4
- require 'bundler/gem_tasks'
3
+ require "rspec/core/rake_task"
4
+ require "bundler/gem_tasks"
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec)
7
7
 
@@ -1,37 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- $LOAD_PATH.push File.expand_path('lib', __dir__)
4
- require 'auto_increment/version'
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 = '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 = 'Automaticaly increments an ActiveRecord column'
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 = `git ls-files`.split("\n")
18
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.require_paths = ['lib']
17
+ s.files = `git ls-files`.split("\n")
18
+ s.require_paths = ["lib"]
20
19
 
21
- s.add_dependency 'activerecord', '>= 6.0'
22
- s.add_dependency 'activesupport', '>= 6.0'
20
+ s.add_dependency "activerecord", ">= 7.1"
21
+ s.add_dependency "activesupport", ">= 7.1"
23
22
 
24
- s.add_development_dependency 'bundler'
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
@@ -2,7 +2,21 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "7.1.2"
6
- gem "activesupport", "7.1.2"
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.2)
5
- activerecord (>= 6.0)
6
- activesupport (>= 6.0)
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.2)
12
- activesupport (= 7.1.2)
13
- activerecord (7.1.2)
14
- activemodel (= 7.1.2)
15
- activesupport (= 7.1.2)
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.2)
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.2)
32
- base64 (0.2.0)
33
- bigdecimal (3.1.5)
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.2.2)
36
- connection_pool (2.4.1)
37
- database_cleaner (2.0.2)
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.1.0)
43
+ database_cleaner-active_record (2.2.2)
40
44
  activerecord (>= 5.a)
41
- database_cleaner-core (~> 2.0.0)
42
- database_cleaner-core (2.0.1)
43
- diff-lcs (1.5.0)
44
- drb (2.2.0)
45
- ruby2_keywords
46
- ffi (1.16.3)
47
- formatador (1.1.0)
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.18.1)
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.14.1)
71
+ i18n (1.15.2)
66
72
  concurrent-ruby (~> 1.0)
67
- json (2.7.1)
68
- language_server-protocol (3.17.0.3)
69
- listen (3.8.0)
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
- lumberjack (1.2.10)
73
- method_source (1.0.0)
74
- minitest (5.20.0)
75
- mutex_m (0.2.0)
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.24.0)
81
- parser (3.2.2.4)
92
+ parallel (2.1.0)
93
+ parser (3.3.11.1)
82
94
  ast (~> 2.4.1)
83
95
  racc
84
- pry (0.14.2)
96
+ prism (1.9.0)
97
+ pry (0.16.0)
85
98
  coderay (~> 1.1)
86
99
  method_source (~> 1.0)
87
- racc (1.7.3)
100
+ reline (>= 0.6.0)
101
+ racc (1.8.1)
88
102
  rainbow (3.1.1)
89
- rake (13.1.0)
103
+ rake (13.4.2)
90
104
  rb-fsevent (0.11.2)
91
- rb-inotify (0.10.1)
105
+ rb-inotify (0.11.1)
92
106
  ffi (~> 1.0)
93
- regexp_parser (2.8.3)
94
- rexml (3.2.6)
95
- rspec (3.12.0)
96
- rspec-core (~> 3.12.0)
97
- rspec-expectations (~> 3.12.0)
98
- rspec-mocks (~> 3.12.0)
99
- rspec-core (3.12.2)
100
- rspec-support (~> 3.12.0)
101
- rspec-expectations (3.12.3)
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.12.0)
104
- rspec-mocks (3.12.6)
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.12.0)
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.12.1)
111
- rubocop (1.59.0)
125
+ rspec-support (3.13.7)
126
+ rubocop (1.87.0)
112
127
  json (~> 2.3)
113
- language_server-protocol (>= 3.17.0)
114
- parallel (~> 1.10)
115
- parser (>= 3.2.2.4)
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 (>= 1.8, < 3.0)
118
- rexml (>= 3.2.5, < 4.0)
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, < 3.0)
122
- rubocop-ast (1.30.0)
123
- parser (>= 3.2.1.0)
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
- ruby2_keywords (0.0.5)
145
+ securerandom (0.4.1)
126
146
  shellany (0.0.1)
127
- sqlite3 (1.4.2)
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.3.0)
130
- timeout (0.4.1)
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.5.0)
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-23
171
+ arm64-darwin-24
172
+ x86_64-linux
137
173
 
138
174
  DEPENDENCIES
139
- activerecord (= 7.1.2)
140
- activesupport (= 7.1.2)
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
- rubocop
152
- sqlite3 (>= 1.3.13)
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: "../"