class Journey::Visitors::Formatter

Used for formatting urls (url_for)

Attributes

consumed[R]
options[R]

Public Class Methods

new(options) click to toggle source
# File lib/journey/visitors.rb, line 85
def initialize options
  @options  = options
  @consumed = {}
end

Private Instance Methods

binary(node) click to toggle source
# File lib/journey/visitors.rb, line 104
def binary node
  [visit(node.left), visit(node.right)].join
end
nary(node) click to toggle source
# File lib/journey/visitors.rb, line 108
def nary node
  node.children.map { |c| visit c }.join
end
terminal(node) click to toggle source
# File lib/journey/visitors.rb, line 100
def terminal node
  node.left
end
visit_GROUP(node) click to toggle source
# File lib/journey/visitors.rb, line 91
def visit_GROUP node
  if consumed == options
    nil
  else
    route = visit node.left
    route.include?("\0") ? nil : route
  end
end
visit_SYMBOL(node) click to toggle source
# File lib/journey/visitors.rb, line 112
def visit_SYMBOL node
  key = node.to_sym

  if value = options[key]
    consumed[key] = value
    Router::Utils.escape_path(value)
  else
    "\0"
  end
end