stepper_motor 0.1.8 → 0.1.9

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90e48cc6e234e073f0582319748da22480e8c3fa2bb81b8217faea879ce542c5
4
- data.tar.gz: 02d2e302fa8238a3c32130e02a79d8f9b2b16b15c59713f996e57ebe03efee2c
3
+ metadata.gz: da2327efc5b8425041ad9cf331bb450dfd81049ac767daab8f8b445d0c518c53
4
+ data.tar.gz: 02305e571a142384e3dce303c64637fa44029a14ca9ca5770f369b5c7c707ab2
5
5
  SHA512:
6
- metadata.gz: 1378f0b6baccf36921501e68e6c24fb26fe62ab13c07098e2af2333bf811b2306a3de3e77c707fef3b7656b7740836e07079f93b48bca873906d62e87a576b5e
7
- data.tar.gz: 72f06897646794459f789d51bed060472158755445216df2b9dea8d25a835eaad5692946f77fa366754a9b14382958b2497f018739fe0bd69104bb0fee766797
6
+ metadata.gz: ecb7dfe9e36759bf2b789d364fcc46399778487f352a634ac73822698b822b4ca1556818da958a480404f9710381e40a96a53310d65f2c77ba90b84ebd2664f7
7
+ data.tar.gz: a8a7d73d008e2bf5286446e8aeb709310a2a475066c6101101131adf5346ca966ae45e8f0c38d98822771e1310b0de160284409b188fa98b5e0787fec2a6b865
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.9] - 2025-05-25
4
+
5
+ - Repair bodged migration from the previous release
6
+
3
7
  ## [0.1.8] - 2025-05-25
4
8
 
5
9
  - Add ability to pause and resume journeys (#24)
@@ -7,13 +7,11 @@ class StepperMotorMigration004 < ActiveRecord::Migration[<%= migration_version %
7
7
  name: :idx_journeys_one_per_hero_with_paused
8
8
 
9
9
  # Remove old indexes that only include 'ready' state
10
- remove_index :stepper_motor_journeys, [:next_step_to_be_performed_at], where: "state = 'ready'"
11
- remove_index :stepper_motor_journeys, [:type, :hero_id, :hero_type], name: :one_per_hero_index, where: "allow_multiple = '0' AND state IN ('ready', 'performing')"
10
+ remove_index :stepper_motor_journeys, [:type, :hero_id, :hero_type], name: :one_per_hero_index, where: "allow_multiple = '0' AND state IN ('ready', 'performing')", algorithm: :concurrently
12
11
  end
13
12
 
14
13
  def down
15
14
  # Recreate old indexes
16
- add_index :stepper_motor_journeys, [:next_step_to_be_performed_at], where: "state = 'ready'"
17
15
  quoted_false = connection.quote(false)
18
16
  add_index :stepper_motor_journeys, [:type, :hero_id, :hero_type],
19
17
  where: "allow_multiple = '#{quoted_false}' AND state IN ('ready', 'performing')",
@@ -21,6 +19,6 @@ class StepperMotorMigration004 < ActiveRecord::Migration[<%= migration_version %
21
19
  name: :one_per_hero_index
22
20
 
23
21
  # Remove new indexes
24
- remove_index :stepper_motor_journeys, name: :idx_journeys_one_per_hero_with_paused
22
+ remove_index :stepper_motor_journeys, name: :idx_journeys_one_per_hero_with_paused, algorithm: :concurrently
25
23
  end
26
- end
24
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StepperMotor
4
- VERSION = "0.1.8"
4
+ VERSION = "0.1.9"
5
5
  end
@@ -2,7 +2,7 @@
2
2
  # StepperMotor is a module for building multi-step flows where steps are sequential and only
3
3
  # ever progress forward. The building block of StepperMotor is StepperMotor::Journey
4
4
  module StepperMotor
5
- VERSION = T.let("0.1.8", T.untyped)
5
+ VERSION = T.let("0.1.9", T.untyped)
6
6
 
7
7
  class Error < StandardError
8
8
  end
@@ -33,14 +33,11 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency "activerecord", ">= 7"
34
34
  spec.add_dependency "activejob"
35
35
  spec.add_dependency "railties"
36
- spec.add_dependency "globalid"
37
36
 
38
37
  spec.add_development_dependency "minitest"
39
38
  spec.add_development_dependency "rails", "~> 7.0"
40
39
  spec.add_development_dependency "sqlite3"
41
40
  spec.add_development_dependency "rake", "~> 13.0"
42
- spec.add_development_dependency "rspec", "~> 3.0"
43
- spec.add_development_dependency "rspec-rails"
44
41
  spec.add_development_dependency "standard"
45
42
  spec.add_development_dependency "magic_frozen_string_literal"
46
43
  spec.add_development_dependency "yard"
@@ -1,3 +1 @@
1
- # frozen_string_literal: true
2
-
3
1
  StepperMotor.scheduler = StepperMotor::ForwardScheduler.new
@@ -1,14 +1,14 @@
1
- # frozen_string_literal: true
2
-
3
1
  class StepperMotorMigration001 < ActiveRecord::Migration[7.2]
4
2
  def change
3
+
5
4
  create_table :stepper_motor_journeys do |t|
5
+
6
6
  t.string :type, null: false, index: true
7
7
  t.string :state, default: "ready"
8
8
  t.string :hero_type, null: true
9
-
9
+
10
10
  t.bigint :hero_id
11
-
11
+
12
12
  t.boolean :allow_multiple, default: false
13
13
  t.string :previous_step_name
14
14
  t.string :next_step_name
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  class StepperMotorMigration002 < ActiveRecord::Migration[7.2]
4
2
  def change
5
3
  # An index is needed to recover stuck journeys
@@ -1,7 +1,6 @@
1
- # frozen_string_literal: true
2
-
3
1
  class StepperMotorMigration003 < ActiveRecord::Migration[7.2]
4
2
  def change
5
3
  add_column :stepper_motor_journeys, :idempotency_key, :string, null: true
6
4
  end
7
5
  end
6
+
@@ -1,28 +1,24 @@
1
- # frozen_string_literal: true
2
-
3
1
  class StepperMotorMigration004 < ActiveRecord::Migration[7.2]
4
2
  def up
5
3
  quoted_false = connection.quote(false)
6
- add_index :stepper_motor_journeys, [:type, :hero_id, :hero_type],
7
- where: "allow_multiple = '#{quoted_false}' AND state IN ('ready', 'performing', 'paused')",
8
- unique: true,
9
- name: :idx_journeys_one_per_hero_with_paused
4
+ add_index :stepper_motor_journeys, [:type, :hero_id, :hero_type],
5
+ where: "allow_multiple = '#{quoted_false}' AND state IN ('ready', 'performing', 'paused')",
6
+ unique: true,
7
+ name: :idx_journeys_one_per_hero_with_paused
10
8
 
11
9
  # Remove old indexes that only include 'ready' state
12
- remove_index :stepper_motor_journeys, [:next_step_to_be_performed_at], where: "state = 'ready'"
13
- remove_index :stepper_motor_journeys, [:type, :hero_id, :hero_type], name: :one_per_hero_index, where: "allow_multiple = '0' AND state IN ('ready', 'performing')"
10
+ remove_index :stepper_motor_journeys, [:type, :hero_id, :hero_type], name: :one_per_hero_index, where: "allow_multiple = '0' AND state IN ('ready', 'performing')", algorithm: :concurrently
14
11
  end
15
12
 
16
13
  def down
17
14
  # Recreate old indexes
18
- add_index :stepper_motor_journeys, [:next_step_to_be_performed_at], where: "state = 'ready'"
19
15
  quoted_false = connection.quote(false)
20
- add_index :stepper_motor_journeys, [:type, :hero_id, :hero_type],
21
- where: "allow_multiple = '#{quoted_false}' AND state IN ('ready', 'performing')",
22
- unique: true,
23
- name: :one_per_hero_index
16
+ add_index :stepper_motor_journeys, [:type, :hero_id, :hero_type],
17
+ where: "allow_multiple = '#{quoted_false}' AND state IN ('ready', 'performing')",
18
+ unique: true,
19
+ name: :one_per_hero_index
24
20
 
25
21
  # Remove new indexes
26
- remove_index :stepper_motor_journeys, name: :idx_journeys_one_per_hero_with_paused
22
+ remove_index :stepper_motor_journeys, name: :idx_journeys_one_per_hero_with_paused, algorithm: :concurrently
27
23
  end
28
24
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  # This file is auto-generated from the current state of the database. Instead
4
2
  # of editing this file, please use the migrations feature of Active Record to
5
3
  # incrementally modify your database, and then regenerate this schema definition.
@@ -12,7 +10,7 @@
12
10
  #
13
11
  # It's strongly recommended that you check this file into your version control system.
14
12
 
15
- ActiveRecord::Schema[7.2].define(version: 2025_05_25_110812) do
13
+ ActiveRecord::Schema[7.2].define(version: 2025_05_25_132526) do
16
14
  create_table "stepper_motor_journeys", force: :cascade do |t|
17
15
  t.string "type", null: false
18
16
  t.string "state", default: "ready"
@@ -28,6 +26,7 @@ ActiveRecord::Schema[7.2].define(version: 2025_05_25_110812) do
28
26
  t.datetime "updated_at", null: false
29
27
  t.string "idempotency_key"
30
28
  t.index ["hero_type", "hero_id"], name: "index_stepper_motor_journeys_on_hero_type_and_hero_id"
29
+ t.index ["next_step_to_be_performed_at"], name: "index_stepper_motor_journeys_on_next_step_to_be_performed_at", where: "state = 'ready' /*application='Dummy'*/"
31
30
  t.index ["type", "hero_id", "hero_type"], name: "idx_journeys_one_per_hero_with_paused", unique: true, where: "allow_multiple = '0' AND state IN ('ready', 'performing', 'paused') /*application='Dummy'*/"
32
31
  t.index ["type", "hero_type", "hero_id"], name: "index_stepper_motor_journeys_on_type_and_hero_type_and_hero_id"
33
32
  t.index ["type"], name: "index_stepper_motor_journeys_on_type"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stepper_motor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov
@@ -51,20 +51,6 @@ dependencies:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
- - !ruby/object:Gem::Dependency
55
- name: globalid
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- type: :runtime
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '0'
68
54
  - !ruby/object:Gem::Dependency
69
55
  name: minitest
70
56
  requirement: !ruby/object:Gem::Requirement
@@ -121,34 +107,6 @@ dependencies:
121
107
  - - "~>"
122
108
  - !ruby/object:Gem::Version
123
109
  version: '13.0'
124
- - !ruby/object:Gem::Dependency
125
- name: rspec
126
- requirement: !ruby/object:Gem::Requirement
127
- requirements:
128
- - - "~>"
129
- - !ruby/object:Gem::Version
130
- version: '3.0'
131
- type: :development
132
- prerelease: false
133
- version_requirements: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - "~>"
136
- - !ruby/object:Gem::Version
137
- version: '3.0'
138
- - !ruby/object:Gem::Dependency
139
- name: rspec-rails
140
- requirement: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
- type: :development
146
- prerelease: false
147
- version_requirements: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
110
  - !ruby/object:Gem::Dependency
153
111
  name: standard
154
112
  requirement: !ruby/object:Gem::Requirement
@@ -292,10 +250,10 @@ files:
292
250
  - test/dummy/config/puma.rb
293
251
  - test/dummy/config/routes.rb
294
252
  - test/dummy/config/storage.yml
295
- - test/dummy/db/migrate/20250520094921_stepper_motor_migration_001.rb
296
- - test/dummy/db/migrate/20250520094922_stepper_motor_migration_002.rb
297
- - test/dummy/db/migrate/20250522212312_stepper_motor_migration_003.rb
298
- - test/dummy/db/migrate/20250525110812_stepper_motor_migration_004.rb
253
+ - test/dummy/db/migrate/20250525132523_stepper_motor_migration_001.rb
254
+ - test/dummy/db/migrate/20250525132524_stepper_motor_migration_002.rb
255
+ - test/dummy/db/migrate/20250525132525_stepper_motor_migration_003.rb
256
+ - test/dummy/db/migrate/20250525132526_stepper_motor_migration_004.rb
299
257
  - test/dummy/db/schema.rb
300
258
  - test/dummy/public/400.html
301
259
  - test/dummy/public/404.html