class Fern::Documentation::RouteAnalyzer

Public Class Methods

new(route) click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 4
def initialize(route)
  @route = route
end

Public Instance Methods

analyze() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 8
def analyze
  return nil if path.nil?

  puts "Analyzing #{path}"

  {
    verb: verb,
    path: path,
    controller_name: controller_name,
    controller: controller,
    action: action,
    params: fern[:params],
    doc: fern[:doc],
    form: fern[:form],
    presenter: fern[:presenter]
  }
end

Private Instance Methods

action() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 28
def action
  @route.defaults[:action]
end
controller() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 32
def controller
  "#{controller_name.camelize}Controller".constantize
end
controller_name() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 36
def controller_name
  @route.defaults[:controller]
end
fern() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 40
def fern
  controller.fern[action.to_sym]
end
path() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 44
def path
  match = /(^[^\(]+)\([^\)]+\)/.match(@route.path.spec.to_s)
  match[1] if match
end
verb() click to toggle source
# File lib/fern/documentation/route_analyzer.rb, line 49
def verb
  @route.verb
end