Class: ActionDispatch::Journey::Visitors::FormatBuilder

Inherits:
Visitor
  • Object
show all
Defined in:
lib/action_dispatch/journey/visitors.rb

Overview

:nodoc:

Constant Summary

Constants inherited from Visitor

Visitor::DISPATCH_CACHE

Instance Method Summary collapse

Instance Method Details

#accept(node) ⇒ Object



136
# File 'lib/action_dispatch/journey/visitors.rb', line 136

def accept(node); Journey::Format.new(super); end

#binary(node) ⇒ Object



139
140
141
# File 'lib/action_dispatch/journey/visitors.rb', line 139

def binary(node)
  visit(node.left) + visit(node.right)
end

#terminal(node) ⇒ Object



137
# File 'lib/action_dispatch/journey/visitors.rb', line 137

def terminal(node); [node.left]; end

#visit_GROUP(n) ⇒ Object



143
# File 'lib/action_dispatch/journey/visitors.rb', line 143

def visit_GROUP(n); [Journey::Format.new(unary(n))]; end

#visit_STAR(n) ⇒ Object



145
146
147
# File 'lib/action_dispatch/journey/visitors.rb', line 145

def visit_STAR(n)
  [Journey::Format.required_path(n.left.to_sym)]
end

#visit_SYMBOL(n) ⇒ Object



149
150
151
152
153
154
155
156
# File 'lib/action_dispatch/journey/visitors.rb', line 149

def visit_SYMBOL(n)
  symbol = n.to_sym
  if symbol == :controller
    [Journey::Format.required_path(symbol)]
  else
    [Journey::Format.required_segment(symbol)]
  end
end