auto_increment 1.6.2 → 1.7.1

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,286 @@
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.
21
63
 
22
64
  ```rb
23
- before_create :set_code
24
- def set_code
25
- max_code = Operation.maximum(:code)
26
- self.code = max_code.to_i + 1
65
+ class Invoice < ApplicationRecord
66
+ auto_increment :number
27
67
  end
28
68
  ```
29
69
 
30
- Looks fine, but not when you need to do it over and over again. In fact auto_increment does it under the cover.
70
+ ### Integer Sequences
31
71
 
32
- All you need to do is this:
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
173
+
174
+ ```rb
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
183
+ end
184
+ ```
185
+
186
+ In this example, the sequence is calculated using all records, including inactive ones.
187
+
188
+ ### Callback Timing
189
+
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:
39
197
 
40
- ## Customizing
198
+ | Option | Callback |
199
+ | ------------- | ------------------- |
200
+ | `:create` | `before_create` |
201
+ | `:save` | `before_save` |
202
+ | `:validation` | `before_validation` |
41
203
 
42
- So you have a different column or need a scope. auto_increment provides options. You can use it like this:
204
+ Example:
43
205
 
44
206
  ```rb
45
- auto_increment :letter, scope: [:account_id, :job_id], model_scope: :in_account, initial: 'C', force: true, lock: false, before: :create
207
+ class Account < ApplicationRecord
208
+ auto_increment :code, before: :validation
209
+
210
+ validates :code, presence: true
211
+ end
46
212
  ```
47
213
 
48
- First argument is the column that will be incremented. Can be integer or string.
214
+ ### Overwriting Existing Values
215
+
216
+ By default, manually assigned nonblank values are preserved. Blank values (as defined by Active Support, including `nil`, `false`, `0`, and `""`) are treated as unset and will be generated.
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
+ To request a database row lock while calculating the next value, enable locking:
232
+
233
+ ```rb
234
+ auto_increment :number, lock: true
235
+ ```
236
+
237
+ The lock is applied to the query used to find the current maximum. Its behavior depends on the database adapter and query; this option does not guarantee unique values under concurrent inserts. Add a unique database index on the generated column (or on the generated column together with its scope columns) to enforce uniqueness.
238
+
239
+ ## Options
240
+
241
+ ```rb
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
249
+ ```
250
+
251
+ | Option | Description | Default |
252
+ | ------------- | ------------------------------------------------------------------ | --------- |
253
+ | `column` | Column to increment. Can be integer or string. | `:code` |
254
+ | `initial` | Starting value. Should match the database column type (`Integer` for integer columns, `String` for string columns); a mismatch is deprecated. 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` |
260
+
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.
49
271
 
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)
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
+ This release supports Rails 7.1 and newer. The older 1.6.2 release supports Rails 6.1 and 7.0; for earlier Rails versions, see the [changelog](CHANGELOG.md) for the releases that added support.
63
283
 
64
284
  ## License
65
285
 
66
- [MIT License](LICENSE.txt)
286
+ 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,25 @@
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 = ["felipediesel@gmail.com"]
13
+ s.homepage = "https://github.com/felipediesel/auto_increment"
14
+ s.summary = "Auto increment a string or integer column"
15
+ s.description = "Automatically generates sequential values for string or integer Active Record columns."
16
+ s.metadata["source_code_uri"] = "https://github.com/felipediesel/auto_increment"
16
17
 
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']
18
+ s.files = `git ls-files`.split("\n")
19
+ s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'activerecord', '>= 6.0'
22
- s.add_dependency 'activesupport', '>= 6.0'
21
+ s.add_dependency "activerecord", ">= 7.1"
22
+ s.add_dependency "activesupport", ">= 7.1"
23
23
 
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'
24
+ s.metadata["rubygems_mfa_required"] = "true"
37
25
  end
@@ -2,7 +2,19 @@
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 "database_cleaner"
11
+ gem "fuubar"
12
+ gem "guard"
13
+ gem "guard-rspec"
14
+ gem "rake"
15
+ gem "rspec"
16
+ gem "sqlite3", "~> 2.10.2"
17
+ gem "standard"
18
+ end
7
19
 
8
20
  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.1)
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.2)
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,94 +68,118 @@ 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.9.5)
74
+ json (3.1.0)
75
+ language_server-protocol (3.17.0.6)
76
+ lint_roller (1.1.0)
77
+ listen (3.10.1)
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.3.0)
93
+ parser (3.3.13.0)
82
94
  ast (~> 2.4.1)
83
95
  racc
84
- pry (0.14.2)
96
+ prism (1.9.0)
97
+ pry (0.16.1)
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.13.1)
108
+ reline (0.7.0)
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.7)
115
+ rspec-support (~> 3.13.0)
116
+ rspec-expectations (3.13.6)
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.9)
105
120
  diff-lcs (>= 1.2.0, < 2.0)
106
- rspec-support (~> 3.12.0)
107
- rspec-nc (0.3.0)
108
- rspec (>= 3)
109
- terminal-notifier (>= 1.4)
110
- rspec-support (3.12.1)
111
- rubocop (1.59.0)
112
- json (~> 2.3)
113
- language_server-protocol (>= 3.17.0)
114
- parallel (~> 1.10)
115
- parser (>= 3.2.2.4)
121
+ rspec-support (~> 3.13.0)
122
+ rspec-support (3.13.8)
123
+ rubocop (1.91.0)
124
+ json (>= 2.3)
125
+ language_server-protocol (~> 3.17.0.2)
126
+ lint_roller (~> 1.1.0)
127
+ parallel (>= 1.10)
128
+ parser (>= 3.3.0.2)
116
129
  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)
130
+ regexp_parser (>= 2.9.3, < 3.0)
131
+ rubocop-ast (>= 1.49.0, < 2.0)
120
132
  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)
133
+ unicode-display_width (>= 2.4.0, < 4.0)
134
+ rubocop-ast (1.51.0)
135
+ parser (>= 3.3.7.2)
136
+ prism (>= 1.7)
137
+ rubocop-performance (1.26.1)
138
+ lint_roller (~> 1.1)
139
+ rubocop (>= 1.75.0, < 2.0)
140
+ rubocop-ast (>= 1.47.1, < 2.0)
124
141
  ruby-progressbar (1.13.0)
125
- ruby2_keywords (0.0.5)
142
+ securerandom (0.4.1)
126
143
  shellany (0.0.1)
127
- sqlite3 (1.4.2)
128
- terminal-notifier (2.0.0)
129
- thor (1.3.0)
130
- timeout (0.4.1)
144
+ sqlite3 (2.10.2-arm64-darwin)
145
+ sqlite3 (2.10.2-x86_64-linux-gnu)
146
+ standard (1.57.0)
147
+ language_server-protocol (~> 3.17.0.2)
148
+ lint_roller (~> 1.0)
149
+ rubocop (~> 1.91.0)
150
+ standard-custom (~> 1.0.0)
151
+ standard-performance (~> 1.8)
152
+ standard-custom (1.0.2)
153
+ lint_roller (~> 1.0)
154
+ rubocop (~> 1.50)
155
+ standard-performance (1.9.0)
156
+ lint_roller (~> 1.1)
157
+ rubocop-performance (~> 1.26.0)
158
+ thor (1.5.0)
159
+ timeout (0.6.1)
131
160
  tzinfo (2.0.6)
132
161
  concurrent-ruby (~> 1.0)
133
- unicode-display_width (2.5.0)
162
+ unicode-display_width (3.3.0)
163
+ unicode-emoji (~> 4.3)
164
+ unicode-emoji (4.3.0)
134
165
 
135
166
  PLATFORMS
136
- arm64-darwin-23
167
+ arm64-darwin-24
168
+ x86_64-linux
137
169
 
138
170
  DEPENDENCIES
139
- activerecord (= 7.1.2)
140
- activesupport (= 7.1.2)
171
+ activerecord (= 7.1.6)
172
+ activesupport (= 7.1.6)
141
173
  appraisal
142
174
  auto_increment!
143
- bundler
144
175
  database_cleaner
145
176
  fuubar
146
177
  guard
147
178
  guard-rspec
148
179
  rake
149
180
  rspec
150
- rspec-nc
151
- rubocop
152
- sqlite3 (>= 1.3.13)
181
+ sqlite3 (~> 2.10.2)
182
+ standard
153
183
 
154
184
  BUNDLED WITH
155
185
  2.4.22
@@ -0,0 +1,20 @@
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 "database_cleaner"
11
+ gem "fuubar"
12
+ gem "guard"
13
+ gem "guard-rspec"
14
+ gem "rake"
15
+ gem "rspec"
16
+ gem "sqlite3", "~> 2.10.2"
17
+ gem "standard"
18
+ end
19
+
20
+ gemspec path: "../"