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



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

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

#binary(node) ⇒ Object



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

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

#terminal(node) ⇒ Object



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

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

#visit_GROUP(n) ⇒ Object



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

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

#visit_STAR(n) ⇒ Object



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

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

#visit_SYMBOL(n) ⇒ Object



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

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