state_machina 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1ce6ace127413c5e3ea50cc6163740defad6f378f3485716cbbd8bcd1e301bd
4
- data.tar.gz: a42a94cb064e593a95f9d4d13750ce3dc850e51b2882570749ca03b4df667c94
3
+ metadata.gz: 31ba09ef350378e653c3f7c99c3ade469cdb2da45bffebd2669ab7e61e316a8c
4
+ data.tar.gz: 97b54c53c83db2dbc0fe7e25664b0feb98ef7b82b7c8a5ad5dde536aaba24f8f
5
5
  SHA512:
6
- metadata.gz: c50c65b8264fc4149a0560e3b2ac6cd3d53e6dab4dea14b5731cf50380917b003811a5b0cad2e808772dbc16eef0318601505fe36efe2373a7eadc8765b0aa0d
7
- data.tar.gz: 415f21703f10b5d1094bb8c78972ea47a70a3f152be7d781e38901aee8be75a15229a7a5d088dfdc347ef41db10c58ec50f31c54d024f9d562dc20318a0dd07a
6
+ metadata.gz: 1edbdd79a822c472e7eadb77869c68282c467f36602a323214170af7690dce27e18dec9b53f821690f47a65c7a189fb4441d1df8ed48301e96b05c855a71ea63
7
+ data.tar.gz: ed5e069229f0b4c8d6abae3fe050a97b73066a784b6abfe94d2e37a940a8b86f5cf4251fa1e6a9d632ad16af9743675e06c6b0e081a8566a41347459e08f7f1b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- state_machina (0.1.2)
4
+ state_machina (0.1.5)
5
5
  concurrent-ruby (< 2)
6
6
 
7
7
  GEM
@@ -9,7 +9,7 @@ GEM
9
9
  specs:
10
10
  ast (2.4.2)
11
11
  coderay (1.1.3)
12
- concurrent-ruby (1.2.2)
12
+ concurrent-ruby (1.2.3)
13
13
  diff-lcs (1.5.0)
14
14
  method_source (1.0.0)
15
15
  parallel (1.21.0)
@@ -51,6 +51,7 @@ GEM
51
51
 
52
52
  PLATFORMS
53
53
  arm64-darwin-21
54
+ arm64-darwin-22
54
55
  x86_64-darwin-20
55
56
 
56
57
  DEPENDENCIES
@@ -60,6 +60,14 @@ module StateMachina
60
60
  end
61
61
  end
62
62
 
63
+ def update_state!(new_state)
64
+ if model.respond_to?(:update!)
65
+ model.update!(column_name => new_state)
66
+ else
67
+ model.public_send("#{column_name}=", new_state)
68
+ end
69
+ end
70
+
63
71
  private
64
72
 
65
73
  def select_possible_events(events)
@@ -56,7 +56,7 @@ module StateMachina
56
56
  end
57
57
 
58
58
  def self.find_transitions(model_name, machine_name, event_name)
59
- transitions.fetch(model_name.to_s, {}).fetch(machine_name.to_s, {}).fetch(event_name.to_s, [])
59
+ transitions.fetch(model_name.to_s, {}).fetch(machine_name.to_s, {}).fetch(event_name.to_s, []).map(&:dup)
60
60
  end
61
61
 
62
62
  def self.register_transition(transition)
@@ -44,5 +44,11 @@ module StateMachina
44
44
 
45
45
  machine.update_state(to_state_name)
46
46
  end
47
+
48
+ def execute!
49
+ return false if machine.nil?
50
+
51
+ machine.update_state!(to_state_name)
52
+ end
47
53
  end
48
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module StateMachina
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: state_machina
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan van der Pas
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-10 00:00:00.000000000 Z
11
+ date: 2024-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby