ruby-state-mach 0.0.1 → 0.0.2

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.
@@ -2,3 +2,8 @@
2
2
 
3
3
  * 1 major enhancement:
4
4
  * Initial release
5
+
6
+ == 0.0.2 2009-08-11
7
+
8
+ * 1 minor enhancement:
9
+ * Docs
@@ -1,26 +1,56 @@
1
1
  = ruby-state-machine
2
2
 
3
- * FIX (url)
3
+ * http://rubyforge.org/projects/ruby-state-mach/
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- FIX (describe your package)
7
+ An enhanced state machine gem for ruby (doesn't require Rails). Provides more robust DSL state declaration syntax than other state machines. Multiple "actions" per event (i.e., next state, labmda, or a "decider".
8
8
 
9
9
  == FEATURES/PROBLEMS:
10
10
 
11
- * FIX (list of features or problems)
11
+
12
12
 
13
13
  == SYNOPSIS:
14
14
 
15
- FIX (code sample of usage)
15
+ class StateMachineFixture
16
+ include StateMachine
17
+ attr_accessor :test_val, :prev_test_val, :proc_val, :force_decide_nil, :name_for_decider
16
18
 
17
- == REQUIREMENTS:
18
19
 
19
- * FIX (list of requirements)
20
+ state_machine :states => [:a_state, :b_state, :c_state, :d_state], :events => [:w_event, :x_event, :y_event, :z_event]
21
+ state_transition :state=>:a_state, :event=>:w_event, :next=>{:state=>:b_state, :action=>lambda{|o, args| o.increment_value(5)} }
22
+ state_transition :state=>:a_state, :event=>:x_event, :next=>:c_state
23
+ state_transition :state=>:a_state, :event=>:y_event, :next=>:a_state
24
+ state_transition :state=>:a_state, :event=>:z_event, :next=>:b_state
25
+
26
+ state_transition :state=>:b_state, :event=>:w_event, :next=>:b_state
27
+ state_transition :state=>:b_state, :event=>:y_event, :next=>:c_state
28
+ state_transition :state=>:b_state, :event=>:z_event, :next=>:a_state
29
+
30
+ state_transition :state=>:c_state, :event=>:x_event, :next=>:b_state
31
+ state_transition :state=>:c_state, :event=>:y_event, :next=>{:state=>:a_state, :action=>lambda{|o, args| o.increment_value(-3)}}
32
+
33
+ state_transition :state=>:c_state, :event=>:w_event, :decider => :c_state_decider,
34
+ :next=>[
35
+ {:state=>:a_state, :action=>lambda{|o, args| o.increment_value(7)} },
36
+ {:state=>:b_state, :action=>lambda{|o, args| o.increment_value(-10)} }
37
+ ]
38
+
39
+ state_transition :state=>:c_state, :event=>:z_event , :decider => :named_action_decider,
40
+ :next=>[
41
+ {:name=>"foo", :state=>:a_state, :action=>lambda{|o, args| o.increment_value(7)} },
42
+ {:name=>"bar", :state=>:d_state, :action=>lambda{|o, args| o.increment_value(-10)} }
43
+ ]
44
+
45
+ state_transition :state=>:d_state, :event=>:x_event, :next=>:stay
46
+
47
+
48
+ == REQUIREMENTS:
49
+ Ruby
20
50
 
21
51
  == INSTALL:
22
52
 
23
- * FIX (sudo gem install, anything else)
53
+ * sudo gem install ruby-state-mach
24
54
 
25
55
  == LICENSE:
26
56
 
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__)) unless
2
2
  $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
3
 
4
4
  module RubyStateMachine
5
- VERSION = '0.0.1'
5
+ VERSION = '0.0.2'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-state-mach
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - stevenmiers
@@ -32,7 +32,7 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.8.0
34
34
  version:
35
- description: FIX (describe your package)
35
+ description: An enhanced state machine gem for ruby (doesn't require Rails). Provides more robust DSL state declaration syntax than other state machines. Multiple "actions" per event (i.e., next state, labmda, or a "decider".
36
36
  email:
37
37
  - steven.miers@gmail.com
38
38
  executables: []
@@ -57,7 +57,7 @@ files:
57
57
  - test/test_helper.rb
58
58
  - test/test_state_machine.rb
59
59
  has_rdoc: true
60
- homepage: FIX (url)
60
+ homepage: http://rubyforge.org/projects/ruby-state-mach/
61
61
  post_install_message: PostInstall.txt
62
62
  rdoc_options:
63
63
  - --main
@@ -82,7 +82,7 @@ rubyforge_project: ruby-state-mach
82
82
  rubygems_version: 1.3.1
83
83
  signing_key:
84
84
  specification_version: 2
85
- summary: FIX (describe your package)
85
+ summary: An enhanced state machine gem for ruby (doesn't require Rails)
86
86
  test_files:
87
87
  - test/test_helper.rb
88
88
  - test/test_state_machine.rb