statemachine 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +1 -1
- data/CHANGES +9 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +10 -2
- data/Rakefile +3 -5
- data/lib/statemachine/transition.rb +12 -5
- data/lib/statemachine/version.rb +2 -2
- data/spec/spec_helper.rb +3 -3
- metadata +25 -45
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-1.9.
|
1
|
+
rvm use ruby-1.9.3-p194@statemachine --create
|
data/CHANGES
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
= Statemachine Changelog
|
2
2
|
|
3
|
+
== Version 2.1.0
|
4
|
+
|
5
|
+
* Do not perform transitions if context method returns false | by @zombor (https://github.com/slagyr/statemachine/pull/11)
|
6
|
+
|
7
|
+
== Version 2.0.1
|
8
|
+
|
9
|
+
* initialize ivars so that runtimes running with -d don't complain about uninitialized ivars (chuckremes)
|
10
|
+
* updated to use Bundler and Rspec 2 (ericmeyer)
|
11
|
+
|
3
12
|
== Version 1.1.0
|
4
13
|
|
5
14
|
DotGraph
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
diff-lcs (1.1.3)
|
4
5
|
rake (0.9.2)
|
5
|
-
rspec (
|
6
|
+
rspec (2.12.0)
|
7
|
+
rspec-core (~> 2.12.0)
|
8
|
+
rspec-expectations (~> 2.12.0)
|
9
|
+
rspec-mocks (~> 2.12.0)
|
10
|
+
rspec-core (2.12.1)
|
11
|
+
rspec-expectations (2.12.0)
|
12
|
+
diff-lcs (~> 1.1.3)
|
13
|
+
rspec-mocks (2.12.0)
|
6
14
|
|
7
15
|
PLATFORMS
|
8
16
|
ruby
|
9
17
|
|
10
18
|
DEPENDENCIES
|
11
19
|
rake
|
12
|
-
rspec (
|
20
|
+
rspec (>= 2.0.0)
|
data/Rakefile
CHANGED
@@ -3,7 +3,7 @@ require 'rubygems'
|
|
3
3
|
require 'rake/gempackagetask'
|
4
4
|
require 'rake/clean'
|
5
5
|
require 'rake/rdoctask'
|
6
|
-
require '
|
6
|
+
require 'rspec/core/rake_task'
|
7
7
|
require 'statemachine'
|
8
8
|
require "bundler/gem_tasks"
|
9
9
|
|
@@ -19,10 +19,8 @@ PKG_FILES = FileList[
|
|
19
19
|
|
20
20
|
task :default => :spec
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
25
|
-
end
|
22
|
+
RSpec::Core::RakeTask.new(:spec)
|
23
|
+
|
26
24
|
|
27
25
|
WEB_ROOT = File.expand_path('~/Projects/slagyr.github.com/statemachine/')
|
28
26
|
|
@@ -17,12 +17,19 @@ module Statemachine
|
|
17
17
|
exits, entries = exits_and_entries(origin, destination)
|
18
18
|
exits.each { |exited_state| exited_state.exit(args) }
|
19
19
|
|
20
|
-
|
20
|
+
if @action
|
21
|
+
result = origin.statemachine.invoke_action(@action, args, "transition action from #{origin} invoked by '#{@event}' event") if @action
|
22
|
+
transition = !(result === false)
|
23
|
+
else
|
24
|
+
transition = true
|
25
|
+
end
|
21
26
|
|
22
|
-
|
23
|
-
|
27
|
+
if transition
|
28
|
+
terminal_state = entries.last
|
29
|
+
terminal_state.activate if terminal_state
|
24
30
|
|
25
|
-
|
31
|
+
entries.each { |entered_state| entered_state.enter(args) }
|
32
|
+
end
|
26
33
|
end
|
27
34
|
|
28
35
|
def exits_and_entries(origin, destination)
|
@@ -61,4 +68,4 @@ module Statemachine
|
|
61
68
|
|
62
69
|
end
|
63
70
|
|
64
|
-
end
|
71
|
+
end
|
data/lib/statemachine/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
2
2
|
require 'rubygems'
|
3
|
-
require '
|
3
|
+
require 'rspec'
|
4
4
|
require 'statemachine'
|
5
5
|
|
6
6
|
$IS_TEST = true
|
@@ -33,12 +33,12 @@ module TurnstileStatemachine
|
|
33
33
|
@alarm_status = false
|
34
34
|
@thankyou_status = false
|
35
35
|
@lock = "@locked = true"
|
36
|
-
@unlock = "@locked = false"
|
36
|
+
@unlock = "@locked = false; nil"
|
37
37
|
@alarm = "@alarm_status = true"
|
38
38
|
@thankyou = "@thankyou_status = true"
|
39
39
|
|
40
40
|
@sm = Statemachine.build do
|
41
|
-
trans :locked, :coin, :unlocked, "@locked = false"
|
41
|
+
trans :locked, :coin, :unlocked, "@locked = false; nil"
|
42
42
|
trans :unlocked, :pass, :locked, "@locked = true"
|
43
43
|
trans :locked, :pass, :locked, "@alarm_status = true"
|
44
44
|
trans :unlocked, :coin, :locked, "@thankyou_status = true"
|
metadata
CHANGED
@@ -1,34 +1,24 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: statemachine
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.1.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 2.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
7
|
+
authors:
|
8
|
+
- ! '''Micah Micah'''
|
14
9
|
autorequire: statemachine
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2012-01-02 00:00:00 +01:00
|
19
|
-
default_executable:
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
20
13
|
dependencies: []
|
21
|
-
|
22
|
-
|
23
|
-
email:
|
24
|
-
-
|
14
|
+
description: Statemachine is a ruby library for building Finite State Machines (FSM),
|
15
|
+
also known as Finite State Automata (FSA).
|
16
|
+
email:
|
17
|
+
- ! '''micah@8thlight.com'''
|
25
18
|
executables: []
|
26
|
-
|
27
19
|
extensions: []
|
28
|
-
|
29
20
|
extra_rdoc_files: []
|
30
|
-
|
31
|
-
files:
|
21
|
+
files:
|
32
22
|
- .gitignore
|
33
23
|
- .rvmrc
|
34
24
|
- CHANGES
|
@@ -192,41 +182,31 @@ files:
|
|
192
182
|
- spec/spec_helper.rb
|
193
183
|
- spec/transition_spec.rb
|
194
184
|
- statemachine.gemspec
|
195
|
-
has_rdoc: true
|
196
185
|
homepage: http://statemachine.rubyforge.org
|
197
186
|
licenses: []
|
198
|
-
|
199
187
|
post_install_message:
|
200
188
|
rdoc_options: []
|
201
|
-
|
202
|
-
require_paths:
|
189
|
+
require_paths:
|
203
190
|
- lib
|
204
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
205
192
|
none: false
|
206
|
-
requirements:
|
207
|
-
- -
|
208
|
-
- !ruby/object:Gem::Version
|
209
|
-
|
210
|
-
|
211
|
-
- 0
|
212
|
-
version: "0"
|
213
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ! '>='
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
197
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
198
|
none: false
|
215
|
-
requirements:
|
216
|
-
- -
|
217
|
-
- !ruby/object:Gem::Version
|
218
|
-
|
219
|
-
segments:
|
220
|
-
- 0
|
221
|
-
version: "0"
|
199
|
+
requirements:
|
200
|
+
- - ! '>='
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '0'
|
222
203
|
requirements: []
|
223
|
-
|
224
204
|
rubyforge_project: statemachine
|
225
|
-
rubygems_version: 1.
|
205
|
+
rubygems_version: 1.8.24
|
226
206
|
signing_key:
|
227
207
|
specification_version: 3
|
228
|
-
summary: Statemachine-2.0
|
229
|
-
test_files:
|
208
|
+
summary: Statemachine-2.1.0 - Statemachine Library for Ruby http://slagyr.github.com/statemachine
|
209
|
+
test_files:
|
230
210
|
- spec/action_invokation_spec.rb
|
231
211
|
- spec/builder_spec.rb
|
232
212
|
- spec/default_transition_spec.rb
|