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