lib/end_state/graph.rb in end_state-0.2.0 vs lib/end_state/graph.rb in end_state-0.3.0
- old
+ new
@@ -1,20 +1,27 @@
module EndState
class Graph < GraphViz
- attr_reader :machine, :nodes
+ attr_reader :machine, :nodes, :event_labels
- def initialize(machine)
+ def initialize(machine, event_labels=true)
@machine = machine
@nodes = {}
+ @event_labels = event_labels
super machine.name.to_sym
end
def draw
machine.transitions.keys.each do |t|
left, right = t.to_a.flatten
nodes[left] ||= add_node(left.to_s)
nodes[right] ||= add_node(right.to_s)
- add_edge nodes[left], nodes[right]
+ edge = add_edge nodes[left], nodes[right]
+ if event_labels
+ event = machine.events.detect do |event, transition|
+ transition.include? t
+ end
+ edge[:label] = event.first.to_s if event
+ end
end
self
end
end
end
\ No newline at end of file