def draw(graph, options = {})
      node = graph.add_nodes(name ? name.to_s : 'nil',
        :label => description(options),
        :width => '1',
        :height => '1',
        :shape => final? ? 'doublecircle' : 'ellipse'
      )
      
      # Add open arrow for initial state
      graph.add_edges(graph.add_nodes('starting_state', :shape => 'point'), node) if initial?
      
      true
    end
def draw(graph, options = {})
      node = graph.add_nodes(name ? name.to_s : 'nil',
        :label => description(options),
        :width => '1',
        :height => '1',
        :shape => final? ? 'doublecircle' : 'ellipse'
      )
      
      # Add open arrow for initial state
      graph.add_edges(graph.add_nodes('starting_state', :shape => 'point'), node) if initial?
      
      true
    end
Draws a representation of this state on the given machine.  This will
 create a new node on the graph with the following properties:
 * +label+ - The human-friendly description of the state.
 * +width+ - The width of the node.  Always 1.
 * +height+ - The height of the node.  Always 1.
 * +shape+ - The actual shape of the node.  If the state is a final
   state, then "doublecircle", otherwise "ellipse".

 Configuration options:
 * <tt>:human_name</tt> - Whether to use the state's human name for the
   node's label that gets drawn on the graph