class ActionDispatch::Journey::Visitors::Formatter

:nodoc:
Used for formatting urls (url_for)

def escape_path(value)

def escape_path(value)
  Router::Utils.escape_path(value)
end

def escape_segment(value)

def escape_segment(value)
  Router::Utils.escape_segment(value)
end

def initialize(options)

def initialize(options)
  @options  = options
end

def visit(node, optional = false)

def visit(node, optional = false)
  case node.type
  when :LITERAL, :SLASH, :DOT
    node.left
  when :STAR
    visit_STAR(node.left)
  when :GROUP
    visit(node.left, true)
  when :CAT
    visit_CAT(node, optional)
  when :SYMBOL
    visit_SYMBOL(node, node.to_sym)
  end
end

def visit_CAT(node, optional)

def visit_CAT(node, optional)
  left = visit(node.left, optional)
  right = visit(node.right, optional)
  if optional && !(right && left)
    ""
  else
    [left, right].join
  end
end

def visit_STAR(node)

def visit_STAR(node)
  if value = options[node.to_sym]
    escape_path(value)
  end
end

def visit_SYMBOL(node, name)

def visit_SYMBOL(node, name)
  if value = options[name]
    name == :controller ? escape_path(value) : escape_segment(value)
  end
end