class EndState::Graph

Attributes

event_labels[R]
machine[R]
nodes[R]

Public Class Methods

new(machine, event_labels=true) click to toggle source
Calls superclass method
# File lib/end_state/graph.rb, line 5
def initialize(machine, event_labels=true)
  @machine = machine
  @nodes = {}
  @event_labels = event_labels
  super machine.name.to_sym
end

Public Instance Methods

draw() click to toggle source
# File lib/end_state/graph.rb, line 12
def draw
  add_transitions
  self
end

Private Instance Methods

add_transition(start_state, end_state, event) click to toggle source
# File lib/end_state/graph.rb, line 25
def add_transition start_state, end_state, event
  nodes[start_state] ||= add_node(start_state.to_s)
  nodes[end_state] ||= add_node(end_state.to_s)
  edge = add_edge nodes[start_state], nodes[end_state]
  edge[:label] = event.to_s if event && event_labels
end
add_transitions() click to toggle source
# File lib/end_state/graph.rb, line 19
def add_transitions
  machine.transition_configurations.each do |start_state, end_state, _, event|
    add_transition(start_state, end_state, event)
  end
end