stator 0.8.0 → 0.9.0.beta

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +10 -5
  3. data/.gitignore +1 -0
  4. data/.ruby-version +1 -1
  5. data/Appraisals +12 -15
  6. data/Gemfile +7 -6
  7. data/README.md +4 -20
  8. data/gemfiles/{activerecord_7.2.gemfile → activerecord_5.1.gemfile} +2 -1
  9. data/gemfiles/activerecord_5.1.gemfile.lock +74 -0
  10. data/gemfiles/{activerecord_8.0.gemfile → activerecord_5.2.gemfile} +2 -1
  11. data/gemfiles/activerecord_5.2.gemfile.lock +74 -0
  12. data/gemfiles/{activerecord_7.1.gemfile → activerecord_5.gemfile} +2 -1
  13. data/gemfiles/activerecord_5.gemfile.lock +74 -0
  14. data/gemfiles/activerecord_6.0.gemfile +2 -2
  15. data/gemfiles/activerecord_6.0.gemfile.lock +41 -69
  16. data/gemfiles/activerecord_6.1.gemfile +2 -2
  17. data/gemfiles/activerecord_6.1.gemfile.lock +41 -68
  18. data/gemfiles/activerecord_7.0.gemfile +2 -2
  19. data/gemfiles/activerecord_7.0.gemfile.lock +40 -66
  20. data/lib/stator/alias.rb +51 -30
  21. data/lib/stator/integration.rb +42 -49
  22. data/lib/stator/machine.rb +59 -58
  23. data/lib/stator/model.rb +78 -73
  24. data/lib/stator/transition.rb +61 -60
  25. data/lib/stator/version.rb +3 -5
  26. data/lib/stator.rb +13 -0
  27. data/spec/model_spec.rb +203 -318
  28. data/spec/spec_helper.rb +6 -2
  29. data/spec/support/models.rb +26 -45
  30. data/spec/support/schema.rb +42 -42
  31. data/stator.gemspec +3 -10
  32. metadata +19 -75
  33. data/.github/CODEOWNERS +0 -1
  34. data/.github/dependabot.yml +0 -24
  35. data/gemfiles/activerecord_7.1.gemfile.lock +0 -114
  36. data/gemfiles/activerecord_7.2.gemfile.lock +0 -113
  37. data/gemfiles/activerecord_8.0.gemfile.lock +0 -116
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file was generated by the `rspec --init` command. Conventionally, all
2
4
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
5
  # Require this file using `require "spec_helper"` to ensure that it is only
@@ -15,13 +17,15 @@ RSpec.configure do |config|
15
17
  config.run_all_when_everything_filtered = true
16
18
  config.filter_run :focus
17
19
 
20
+ config.raise_errors_for_deprecations!
21
+
18
22
  NullDB.configure do |c|
19
23
  c.project_root = File.dirname(__FILE__)
20
24
  end
21
25
 
22
26
  ActiveRecord::Base.establish_connection(
23
- :adapter => :nulldb,
24
- :schema => 'support/schema.rb'
27
+ adapter: :nulldb,
28
+ schema: 'support/schema.rb'
25
29
  )
26
30
 
27
31
  require 'support/models'
@@ -1,19 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class User < ActiveRecord::Base
2
- extend Stator::Model
4
+ include Stator::Model
3
5
 
4
6
  before_save :set_tagged_at
5
7
 
6
- attr_reader :activation_notification_published
7
-
8
8
  stator track: true, initial: :pending do
9
9
 
10
10
  transition :activate do
11
11
  from :pending, :semiactivated
12
12
  to :activated
13
-
14
- conditional(use_previous: true) do |condition|
15
- after_save :publish_activation_notification, :if => condition
16
- end
17
13
  end
18
14
 
19
15
  transition :deactivate do
@@ -21,7 +17,7 @@ class User < ActiveRecord::Base
21
17
  to :deactivated
22
18
 
23
19
  conditional do |condition|
24
- before_save :set_deactivated, :if => condition
20
+ before_save :set_deactivated, if: condition
25
21
  end
26
22
  end
27
23
 
@@ -30,7 +26,7 @@ class User < ActiveRecord::Base
30
26
  to :semiactivated
31
27
 
32
28
  conditional do |condition|
33
- validate :check_email_validity, :if => condition
29
+ validate :check_email_validity, if: condition
34
30
  end
35
31
  end
36
32
 
@@ -40,19 +36,18 @@ class User < ActiveRecord::Base
40
36
  end
41
37
 
42
38
  conditional :semiactivated, :activated do |condition|
43
- validate :check_email_presence, :if => condition
39
+ validate :check_email_presence, if: condition
44
40
  end
45
41
 
46
- state_alias :active, :constant => true, :scope => true do
42
+ state_alias :active, constant: true, scope: true do
47
43
  is :activated, :hyperactivated
48
- opposite :inactive, :constant => true, :scope => true
44
+ opposite :inactive, constant: true, scope: true
49
45
  end
50
46
 
51
- state_alias :luke_warm, :constant => :luke_warmers, :scope => :luke_warmers do
47
+ state_alias :luke_warm, constant: :luke_warmers, scope: :luke_warmers do
52
48
  is :semiactivated
53
49
  opposite :iced_tea
54
50
  end
55
-
56
51
  end
57
52
 
58
53
  validate :email_is_right_length
@@ -60,8 +55,8 @@ class User < ActiveRecord::Base
60
55
  protected
61
56
 
62
57
  def check_email_presence
63
- unless self.email.present?
64
- self.errors.add(:email, 'needs to be present')
58
+ if email.nil? || email.empty?
59
+ errors.add(:email, 'needs to be present')
65
60
  return false
66
61
  end
67
62
 
@@ -69,8 +64,8 @@ class User < ActiveRecord::Base
69
64
  end
70
65
 
71
66
  def check_email_validity
72
- unless self.email.to_s =~ /example\.com$/
73
- self.errors.add(:email, 'format needs to be example.com')
67
+ unless /example\.com$/.match?(email.to_s)
68
+ errors.add(:email, 'format needs to be example.com')
74
69
  return false
75
70
  end
76
71
 
@@ -78,8 +73,8 @@ class User < ActiveRecord::Base
78
73
  end
79
74
 
80
75
  def email_is_right_length
81
- unless self.email.to_s.length == 'four@example.com'.length
82
- self.errors.add(:email, 'needs to be the right length')
76
+ unless email.to_s.length == 'four@example.com'.length
77
+ errors.add(:email, 'needs to be the right length')
83
78
  return false
84
79
  end
85
80
 
@@ -92,39 +87,29 @@ class User < ActiveRecord::Base
92
87
  end
93
88
 
94
89
  def set_tagged_at
95
- self.tagged_at = self.semiactivated_state_at
90
+ self.tagged_at = semiactivated_state_at
96
91
  end
97
-
98
- private
99
-
100
- def publish_activation_notification
101
- @activation_notification_published = true
102
- end
103
-
104
92
  end
105
93
 
106
94
  class Animal < ActiveRecord::Base
107
- extend Stator::Model
95
+ include Stator::Model
108
96
 
109
97
  # initial state = unborn
110
- stator :field => :status, :helpers => true, :track => true do
111
-
98
+ stator field: :status, track: true do
112
99
  transition :birth do
113
100
  from :unborn
114
101
  to :born
115
102
  end
116
103
 
117
104
  state :grown_up
118
-
119
105
  end
120
106
  end
121
107
 
122
108
  class Zoo < ActiveRecord::Base
123
- extend Stator::Model
109
+ include Stator::Model
124
110
 
125
111
  # initial state = closed
126
112
  stator do
127
-
128
113
  transition :open do
129
114
  from :closed
130
115
  to :opened
@@ -136,7 +121,7 @@ class Zoo < ActiveRecord::Base
136
121
  end
137
122
 
138
123
  conditional :opened do |c|
139
- validate :validate_lights_are_on, :if => c
124
+ validate :validate_lights_are_on, if: c
140
125
  end
141
126
  end
142
127
 
@@ -148,7 +133,7 @@ class Zoo < ActiveRecord::Base
148
133
  end
149
134
 
150
135
  class ZooKeeper < ActiveRecord::Base
151
- extend Stator::Model
136
+ include Stator::Model
152
137
 
153
138
  stator namespace: 'employment', field: 'employment_state', track: true do
154
139
  transition :hire do
@@ -176,20 +161,18 @@ class ZooKeeper < ActiveRecord::Base
176
161
  end
177
162
 
178
163
  class Farm < ActiveRecord::Base
179
- extend Stator::Model
164
+ include Stator::Model
180
165
 
181
166
  # initial state = dirty
182
167
  stator do
183
168
  transition :cleanup do
184
- from :dirty
185
- to :clean
169
+ from :dirty
170
+ to :clean
186
171
  end
187
172
  end
188
173
 
189
-
190
174
  # initial state = dirty
191
- stator :field => 'house_state', :namespace => 'house' do
192
-
175
+ stator namespace: 'house', field: 'house_state' do
193
176
  transition :cleanup do
194
177
  from :dirty
195
178
  to :clean
@@ -204,11 +187,10 @@ class Farm < ActiveRecord::Base
204
187
  is_not :dirty, :disgusting
205
188
  end
206
189
  end
207
-
208
190
  end
209
191
 
210
192
  class Factory < ActiveRecord::Base
211
- extend Stator::Model
193
+ include Stator::Model
212
194
 
213
195
  # initial state = nil
214
196
  stator do
@@ -222,5 +204,4 @@ class Factory < ActiveRecord::Base
222
204
  to :on_the_ground
223
205
  end
224
206
  end
225
-
226
207
  end
@@ -1,55 +1,55 @@
1
- ActiveRecord::Schema.define(:version => 20130628161227) do
1
+ # frozen_string_literal: true
2
2
 
3
- create_table "users", :force => true do |t|
4
- t.string "name"
5
- t.string "email"
6
- t.datetime "tagged_at"
7
- t.string "state", :default => 'pending'
8
- t.boolean "activated", :default => true
9
- t.datetime "created_at", :null => false
10
- t.datetime "updated_at", :null => false
11
- t.datetime "semiactivated_state_at"
12
- t.datetime "activated_state_at"
3
+ ActiveRecord::Schema.define(version: 20_130_628_161_227) do
4
+ create_table 'users', force: true do |t|
5
+ t.string 'name'
6
+ t.string 'email'
7
+ t.datetime 'tagged_at'
8
+ t.string 'state', default: 'pending'
9
+ t.boolean 'activated', default: true
10
+ t.datetime 'created_at', null: false
11
+ t.datetime 'updated_at', null: false
12
+ t.datetime 'semiactivated_state_at'
13
+ t.datetime 'activated_state_at'
13
14
  end
14
15
 
15
- create_table "animals", :force => true do |t|
16
- t.string "name"
17
- t.string "status", :default => 'unborn'
18
- t.datetime "created_at", :null => false
19
- t.datetime "updated_at", :null => false
20
- t.datetime "status_changed_at"
21
- t.datetime "unborn_status_at"
22
- t.datetime "born_status_at"
16
+ create_table 'animals', force: true do |t|
17
+ t.string 'name'
18
+ t.string 'status', default: 'unborn'
19
+ t.datetime 'created_at', null: false
20
+ t.datetime 'updated_at', null: false
21
+ t.datetime 'status_changed_at'
22
+ t.datetime 'unborn_status_at'
23
+ t.datetime 'born_status_at'
23
24
  end
24
25
 
25
- create_table "zoo_keepers", :force => true do |t|
26
- t.string "name"
27
- t.string "employment_state", :default => 'hired'
28
- t.datetime "hired_employment_state_at"
29
- t.datetime "fired_employment_state_at"
30
- t.string "working_state"
31
- t.datetime "started_working_state_at"
32
- t.datetime "ended_working_state_at"
26
+ create_table 'zoo_keepers', force: true do |t|
27
+ t.string 'name'
28
+ t.string 'employment_state', default: 'hired'
29
+ t.datetime 'hired_employment_state_at'
30
+ t.datetime 'fired_employment_state_at'
31
+ t.string 'working_state'
32
+ t.datetime 'started_working_state_at'
33
+ t.datetime 'ended_working_state_at'
33
34
  end
34
35
 
35
- create_table "zoos", :force => true do |t|
36
- t.string "name"
37
- t.string "state", :default => 'closed'
38
- t.datetime "created_at", :null => false
39
- t.datetime "updated_at", :null => false
36
+ create_table 'zoos', force: true do |t|
37
+ t.string 'name'
38
+ t.string 'state', default: 'closed'
39
+ t.datetime 'created_at', null: false
40
+ t.datetime 'updated_at', null: false
40
41
  end
41
42
 
42
- create_table "farms", :force => true do |t|
43
- t.string "name"
44
- t.string "state", :default => 'dirty'
45
- t.string "house_state", :default => 'dirty'
46
- t.datetime "created_at", :null => false
47
- t.datetime "updated_at", :null => false
43
+ create_table 'farms', force: true do |t|
44
+ t.string 'name'
45
+ t.string 'state', default: 'dirty'
46
+ t.string 'house_state', default: 'dirty'
47
+ t.datetime 'created_at', null: false
48
+ t.datetime 'updated_at', null: false
48
49
  end
49
50
 
50
- create_table "factories", :force => true do |t|
51
- t.string "name"
52
- t.string "state"
51
+ create_table 'factories', force: true do |t|
52
+ t.string 'name'
53
+ t.string 'state'
53
54
  end
54
-
55
55
  end
data/stator.gemspec CHANGED
@@ -10,20 +10,13 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ["mike@mikeonrails.com"]
11
11
  gem.description = %q{The simplest of ActiveRecord state machines. Intended to be lightweight and minimalistic.}
12
12
  gem.summary = %q{The simplest of ActiveRecord state machines}
13
- gem.homepage = "https://github.com/guideline-tech/stator"
14
- gem.license = "MIT"
13
+ gem.homepage = "https://www.github.com/mnelson/stator"
15
14
 
16
15
  gem.files = `git ls-files`.split($/)
17
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
18
  gem.require_paths = ["lib"]
20
19
 
21
- gem.add_dependency 'base64'
22
- gem.add_dependency 'benchmark'
23
- gem.add_dependency 'bigdecimal'
24
- gem.add_dependency 'logger'
25
- gem.add_dependency 'mutex_m'
26
- gem.add_dependency 'activerecord', ">= 6.0"
27
-
28
- gem.required_ruby_version = ">= 3.2.0"
20
+ gem.add_dependency 'activerecord'
21
+ gem.add_dependency 'activesupport'
29
22
  end
metadata CHANGED
@@ -1,58 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Nelson
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2022-07-26 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
- name: base64
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: '0'
26
- - !ruby/object:Gem::Dependency
27
- name: benchmark
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '0'
40
- - !ruby/object:Gem::Dependency
41
- name: bigdecimal
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: '0'
47
- type: :runtime
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: logger
14
+ name: activerecord
56
15
  requirement: !ruby/object:Gem::Requirement
57
16
  requirements:
58
17
  - - ">="
@@ -66,7 +25,7 @@ dependencies:
66
25
  - !ruby/object:Gem::Version
67
26
  version: '0'
68
27
  - !ruby/object:Gem::Dependency
69
- name: mutex_m
28
+ name: activesupport
70
29
  requirement: !ruby/object:Gem::Requirement
71
30
  requirements:
72
31
  - - ">="
@@ -79,20 +38,6 @@ dependencies:
79
38
  - - ">="
80
39
  - !ruby/object:Gem::Version
81
40
  version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: activerecord
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '6.0'
89
- type: :runtime
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '6.0'
96
41
  description: The simplest of ActiveRecord state machines. Intended to be lightweight
97
42
  and minimalistic.
98
43
  email:
@@ -101,8 +46,6 @@ executables: []
101
46
  extensions: []
102
47
  extra_rdoc_files: []
103
48
  files:
104
- - ".github/CODEOWNERS"
105
- - ".github/dependabot.yml"
106
49
  - ".github/workflows/build.yml"
107
50
  - ".gitignore"
108
51
  - ".rspec"
@@ -113,18 +56,18 @@ files:
113
56
  - LICENSE.txt
114
57
  - README.md
115
58
  - Rakefile
59
+ - gemfiles/activerecord_5.1.gemfile
60
+ - gemfiles/activerecord_5.1.gemfile.lock
61
+ - gemfiles/activerecord_5.2.gemfile
62
+ - gemfiles/activerecord_5.2.gemfile.lock
63
+ - gemfiles/activerecord_5.gemfile
64
+ - gemfiles/activerecord_5.gemfile.lock
116
65
  - gemfiles/activerecord_6.0.gemfile
117
66
  - gemfiles/activerecord_6.0.gemfile.lock
118
67
  - gemfiles/activerecord_6.1.gemfile
119
68
  - gemfiles/activerecord_6.1.gemfile.lock
120
69
  - gemfiles/activerecord_7.0.gemfile
121
70
  - gemfiles/activerecord_7.0.gemfile.lock
122
- - gemfiles/activerecord_7.1.gemfile
123
- - gemfiles/activerecord_7.1.gemfile.lock
124
- - gemfiles/activerecord_7.2.gemfile
125
- - gemfiles/activerecord_7.2.gemfile.lock
126
- - gemfiles/activerecord_8.0.gemfile
127
- - gemfiles/activerecord_8.0.gemfile.lock
128
71
  - lib/stator.rb
129
72
  - lib/stator/alias.rb
130
73
  - lib/stator/integration.rb
@@ -137,10 +80,10 @@ files:
137
80
  - spec/support/models.rb
138
81
  - spec/support/schema.rb
139
82
  - stator.gemspec
140
- homepage: https://github.com/guideline-tech/stator
141
- licenses:
142
- - MIT
83
+ homepage: https://www.github.com/mnelson/stator
84
+ licenses: []
143
85
  metadata: {}
86
+ post_install_message:
144
87
  rdoc_options: []
145
88
  require_paths:
146
89
  - lib
@@ -148,14 +91,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
91
  requirements:
149
92
  - - ">="
150
93
  - !ruby/object:Gem::Version
151
- version: 3.2.0
94
+ version: '0'
152
95
  required_rubygems_version: !ruby/object:Gem::Requirement
153
96
  requirements:
154
- - - ">="
97
+ - - ">"
155
98
  - !ruby/object:Gem::Version
156
- version: '0'
99
+ version: 1.3.1
157
100
  requirements: []
158
- rubygems_version: 3.6.7
101
+ rubygems_version: 3.1.6
102
+ signing_key:
159
103
  specification_version: 4
160
104
  summary: The simplest of ActiveRecord state machines
161
105
  test_files:
data/.github/CODEOWNERS DELETED
@@ -1 +0,0 @@
1
- .github/workflows @guideline-tech/engineering
@@ -1,24 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "github-actions"
4
- directory: "/"
5
- open-pull-requests-limit: 20
6
- schedule:
7
- interval: "daily"
8
- time: "09:00"
9
- timezone: "America/New_York"
10
- commit-message:
11
- prefix: "[github-actions] "
12
- - package-ecosystem: "bundler"
13
- directory: "/"
14
- schedule:
15
- interval: "daily"
16
- time: "08:30"
17
- timezone: "America/New_York"
18
- allow:
19
- - dependency-type: "all"
20
- versioning-strategy: increase
21
- open-pull-requests-limit: 20
22
- insecure-external-code-execution: deny
23
- commit-message:
24
- prefix: "[bundler] "
@@ -1,114 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- stator (0.8.0)
5
- activerecord (>= 6.0)
6
- base64
7
- benchmark
8
- bigdecimal
9
- logger
10
- mutex_m
11
-
12
- GEM
13
- remote: https://rubygems.org/
14
- specs:
15
- activemodel (7.1.5.1)
16
- activesupport (= 7.1.5.1)
17
- activerecord (7.1.5.1)
18
- activemodel (= 7.1.5.1)
19
- activesupport (= 7.1.5.1)
20
- timeout (>= 0.4.0)
21
- activerecord-nulldb-adapter (1.1.1)
22
- activerecord (>= 6.0, < 8.1)
23
- activesupport (7.1.5.1)
24
- base64
25
- benchmark (>= 0.3)
26
- bigdecimal
27
- concurrent-ruby (~> 1.0, >= 1.0.2)
28
- connection_pool (>= 2.2.5)
29
- drb
30
- i18n (>= 1.6, < 2)
31
- logger (>= 1.4.2)
32
- minitest (>= 5.1)
33
- mutex_m
34
- securerandom (>= 0.3)
35
- tzinfo (~> 2.0)
36
- appraisal (2.5.0)
37
- bundler
38
- rake
39
- thor (>= 0.14.0)
40
- base64 (0.2.0)
41
- benchmark (0.4.0)
42
- bigdecimal (3.1.9)
43
- concurrent-ruby (1.3.5)
44
- connection_pool (2.5.0)
45
- diff-lcs (1.6.1)
46
- drb (2.2.1)
47
- i18n (1.14.7)
48
- concurrent-ruby (~> 1.0)
49
- logger (1.7.0)
50
- minitest (5.25.5)
51
- mutex_m (0.3.0)
52
- rake (13.2.1)
53
- rspec (3.13.0)
54
- rspec-core (~> 3.13.0)
55
- rspec-expectations (~> 3.13.0)
56
- rspec-mocks (~> 3.13.0)
57
- rspec-core (3.13.3)
58
- rspec-support (~> 3.13.0)
59
- rspec-expectations (3.13.3)
60
- diff-lcs (>= 1.2.0, < 2.0)
61
- rspec-support (~> 3.13.0)
62
- rspec-mocks (3.13.2)
63
- diff-lcs (>= 1.2.0, < 2.0)
64
- rspec-support (~> 3.13.0)
65
- rspec-support (3.13.2)
66
- securerandom (0.4.1)
67
- thor (1.3.2)
68
- timeout (0.4.3)
69
- tzinfo (2.0.6)
70
- concurrent-ruby (~> 1.0)
71
-
72
- PLATFORMS
73
- arm64-darwin
74
- ruby
75
-
76
- DEPENDENCIES
77
- activerecord (~> 7.1.0)
78
- activerecord-nulldb-adapter
79
- appraisal
80
- rake
81
- rspec
82
- stator!
83
-
84
- CHECKSUMS
85
- activemodel (7.1.5.1) sha256=74727466854a7fbdfe8f2702ca3112b23877500d4926bf7e02e921ad542191f1
86
- activerecord (7.1.5.1) sha256=f40ad1609bf33b9ba5bdc4e16d80a77b1517153234ceb413d31d635d7b91f1e3
87
- activerecord-nulldb-adapter (1.1.1) sha256=034c91106183b954b072fba14c2786adf1a2b9e852ce04f85f823afaf03e9820
88
- activesupport (7.1.5.1) sha256=9f0c482e473b9868cb3dfe3e9db549a3bd2302c02e4f595a5caac144a8c7cfb8
89
- appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce
90
- base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
91
- benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
92
- bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
93
- concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
94
- connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
95
- diff-lcs (1.6.1) sha256=12a5a83f3e37a8e2f4427268e305914d5f1879f22b4e73bb1a09f76a3dd86cd4
96
- drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
97
- i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
98
- logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
99
- minitest (5.25.5) sha256=391b6c6cb43a4802bfb7c93af1ebe2ac66a210293f4a3fb7db36f2fc7dc2c756
100
- mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
101
- rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
102
- rspec (3.13.0) sha256=d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993
103
- rspec-core (3.13.3) sha256=25136507f4f9cf2e8977a2851e64e438b4331646054e345998714108745cdfe4
104
- rspec-expectations (3.13.3) sha256=0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58
105
- rspec-mocks (3.13.2) sha256=2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef
106
- rspec-support (3.13.2) sha256=cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec
107
- securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
108
- stator (0.8.0)
109
- thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
110
- timeout (0.4.3) sha256=9509f079b2b55fe4236d79633bd75e34c1c1e7e3fb4b56cb5fda61f80a0fe30e
111
- tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
112
-
113
- BUNDLED WITH
114
- 2.6.7