module YARD::Templates::Helpers::RouteHelper

Public Class Methods

api_methods_for_controller_and_action(controller, action) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 22
def api_methods_for_controller_and_action(controller, action)
  @routes ||= routes_for('/')
  controller_path = [ YARD::APIPlugin.options.route_namespace, controller ].join('/')
  controller_path.gsub!(/^\/|_controller$/, '')
  @routes.find_all { |r| matches_controller_and_action?(r, controller_path, action) }
end
get_route_path(route) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 29
def get_route_path(route)
  route.path.spec.to_s.gsub("(.:format)", "")
end
get_route_verb(route) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 33
def get_route_verb(route)
  verb = route.verb

  case verb
  when Regexp
    verb.source =~ /\^?(\w*)\$/ ? $1.upcase : verb.source
  when String
    verb
  else
    "???"
  end
end
matches_controller_and_action?(route, controller, action) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 17
def matches_controller_and_action?(route, controller, action)
  route.requirements[:controller] == controller &&
  route.requirements[:action] == action
end
routes_for(prefix) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 4
def routes_for(prefix)
  Rails.application.routes.set
end
routes_for_yard_object(api_object) click to toggle source
# File lib/yard-api/templates/helpers/route_helper.rb, line 8
def routes_for_yard_object(api_object)
  controller_name = api_object.parent.path.underscore
  controller_name.sub!('_controller', '') unless controller_name.include?('/')

  action = api_object.path.sub(/^.*#/, '').sub(/_with_.*$/, '')

  api_methods_for_controller_and_action(controller_name, action)
end