Module: ActionDispatch::Journey::NFA::Dot
- Included in:
- GTG::TransitionTable, TransitionTable
- Defined in:
- actionpack/lib/action_dispatch/journey/nfa/dot.rb
Overview
:nodoc:
Instance Method Summary collapse
Instance Method Details
#to_dot ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'actionpack/lib/action_dispatch/journey/nfa/dot.rb', line 7 def to_dot edges = transitions.map { |from, sym, to| " #{from} -> #{to} [label=\"#{sym || 'ε'}\"];" } # memo_nodes = memos.values.flatten.map { |n| # label = n # if Journey::Route === n # label = "#{n.verb.source} #{n.path.spec}" # end # " #{n.object_id} [label=\"#{label}\", shape=box];" # } # memo_edges = memos.flat_map { |k, memos| # (memos || []).map { |v| " #{k} -> #{v.object_id};" } # }.uniq <<-eodot digraph nfa { rankdir=LR; node [shape = doublecircle]; #{accepting_states.join ' '}; node [shape = circle]; #{edges.join "\n"} } eodot end |