public
Description: An extendable, cloneable, dynamic UML 2 StateMachine for Ruby
Homepage: http://kurtstephens.com
Clone URL: git://github.com/kstephens/red_steak.git
kstephens (author)
Fri May 08 22:29:02 -0700 2009
commit  0ed7a2e425d2ee2483ff9692e1cbf809e03a060d
tree    e9fb449da2df59b75b9707c1e1c95a3ef1d2530e
parent  6022c37727f736d88e402b45703bc2e70be34379
red_steak / TODO
100644 28 lines (21 sloc) 1.097 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
-*- outline -*-
 
* Things to do:
** Machine#state=(String|Array).
** Add :elapsed_time to history Hash - has performance implication.
** Support StateMachine#freeze to avoid accidental changes to a running StateMachine.
** Support UML Pseudostates.
** Support UML Regions.
** Support UML History, Deep History Pseudostate semantics.
** Support UML Transition#kind.
** Remove State#state_type and support UML FinalState.
 
* Jeremy's Comments:
** Having to call start! explicitly is troublesome.
** Setting Machine#context more than once could cause confusion.
** Need a way to do Statemachine#freeze, which will throw errors if new states/transitions are added.
** When you enter into a substate, lazyly create a Submachine.
  "This will not be implemented as it is counter to UML semantics"
** Need to have a way to disable Machine#context= and Machine#state= to prevent foolishness.
** There is an implied nil "start!" transition in the Machine#history,
not sure what to do about this.
 
* Dean's Comments:
** Machine#run! is a terrible name since it may return before Machine#at_end? is true.