hsume2-state_machine 1.0.2 → 1.0.3
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/Rakefile +4 -5
- data/lib/state_machine/machine.rb +4 -4
- data/test/functional/alternate_state_machine_test.rb +13 -0
- metadata +7 -7
data/Rakefile
CHANGED
@@ -6,7 +6,7 @@ require 'rake/gempackagetask'
|
|
6
6
|
|
7
7
|
spec = Gem::Specification.new do |s|
|
8
8
|
s.name = 'hsume2-state_machine'
|
9
|
-
s.version = '1.0.
|
9
|
+
s.version = '1.0.3'
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
11
|
s.summary = 'Adds support for creating state machines for attributes on any Ruby class'
|
12
12
|
s.description = s.summary
|
@@ -16,10 +16,9 @@ spec = Gem::Specification.new do |s|
|
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.test_files = Dir['test/**/*_test.rb']
|
18
18
|
|
19
|
-
s.author = '
|
20
|
-
s.email = '
|
21
|
-
s.homepage = 'http://
|
22
|
-
s.rubyforge_project = 'pluginaweek'
|
19
|
+
s.author = 'Henry Hsu'
|
20
|
+
s.email = 'hhsu@zendesk.com'
|
21
|
+
s.homepage = 'http://github.com/hsume2/state_machine'
|
23
22
|
end
|
24
23
|
|
25
24
|
desc 'Default: run all tests.'
|
@@ -328,7 +328,7 @@ module StateMachine
|
|
328
328
|
end
|
329
329
|
|
330
330
|
# Evaluate DSL
|
331
|
-
machine.evaluate_with_syntax(&block) if block_given?
|
331
|
+
machine.evaluate_with_syntax(options[:syntax], &block) if block_given?
|
332
332
|
else
|
333
333
|
# No existing machine: create a new one
|
334
334
|
machine = new(owner_class, name, options, &block)
|
@@ -461,7 +461,7 @@ module StateMachine
|
|
461
461
|
after_initialize
|
462
462
|
|
463
463
|
# Evaluate DSL
|
464
|
-
evaluate_with_syntax(&block) if block_given?
|
464
|
+
evaluate_with_syntax(@syntax, &block) if block_given?
|
465
465
|
end
|
466
466
|
|
467
467
|
# Creates a copy of this machine in addition to copies of each associated
|
@@ -477,8 +477,8 @@ module StateMachine
|
|
477
477
|
@callbacks = {:before => @callbacks[:before].dup, :after => @callbacks[:after].dup, :failure => @callbacks[:failure].dup}
|
478
478
|
end
|
479
479
|
|
480
|
-
def evaluate_with_syntax(&block)
|
481
|
-
if
|
480
|
+
def evaluate_with_syntax(syntax, &block)
|
481
|
+
if syntax == :alternate
|
482
482
|
instance_eval(&alternate_syntax_eval(&block))
|
483
483
|
else
|
484
484
|
instance_eval(&block)
|
@@ -79,6 +79,19 @@ class AlternateAutoShopAvailableTest < Test::Unit::TestCase
|
|
79
79
|
assert @auto_shop.closed?
|
80
80
|
end
|
81
81
|
|
82
|
+
def test_should_append_to_machine_in_default_syntax
|
83
|
+
AlternateAutoShop.class_eval do
|
84
|
+
state_machine :initial => :available do
|
85
|
+
event :restart do
|
86
|
+
transition any => :restarted
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
assert @auto_shop.restart
|
92
|
+
assert @auto_shop.restarted?
|
93
|
+
end
|
94
|
+
|
82
95
|
def test_should_not_allow_event_outside_state
|
83
96
|
assert_raises(StateMachine::AlternateMachine::InvalidEventError) do
|
84
97
|
AlternateAutoShop.class_eval do
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hsume2-state_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
9
|
+
- 3
|
10
|
+
version: 1.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
-
-
|
13
|
+
- Henry Hsu
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
@@ -20,7 +20,7 @@ default_executable:
|
|
20
20
|
dependencies: []
|
21
21
|
|
22
22
|
description: Adds support for creating state machines for attributes on any Ruby class
|
23
|
-
email:
|
23
|
+
email: hhsu@zendesk.com
|
24
24
|
executables: []
|
25
25
|
|
26
26
|
extensions: []
|
@@ -138,7 +138,7 @@ files:
|
|
138
138
|
- Rakefile
|
139
139
|
- README.rdoc
|
140
140
|
has_rdoc: true
|
141
|
-
homepage: http://
|
141
|
+
homepage: http://github.com/hsume2/state_machine
|
142
142
|
licenses: []
|
143
143
|
|
144
144
|
post_install_message:
|
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
166
|
version: "0"
|
167
167
|
requirements: []
|
168
168
|
|
169
|
-
rubyforge_project:
|
169
|
+
rubyforge_project:
|
170
170
|
rubygems_version: 1.5.3
|
171
171
|
signing_key:
|
172
172
|
specification_version: 3
|