class Openapi::RoutesParser
Attributes
routes[RW]
Public Class Methods
new(controller)
click to toggle source
# File lib/openapi/routes_parser.rb, line 7 def initialize(controller) @controller = controller @routes = [] formatter = ActionDispatch::Routing::ConsoleFormatter.new @routes_table = routes_inspector.format(formatter, controller_slug) parse! end
Private Instance Methods
controller_slug()
click to toggle source
# File lib/openapi/routes_parser.rb, line 27 def controller_slug @controller. to_s. underscore. gsub('::', '/'). gsub('_controller','') end
parse!()
click to toggle source
# File lib/openapi/routes_parser.rb, line 35 def parse! @routes_table = @routes_table.split("\n") @routes_table.shift @routes_table.each do |row| row.remove! ' {:format=>:json}' action = row.sub(/.*?#/, '') route = row.split(' ').reverse path = route[1].gsub('(.:format)','') method = route[2].underscore @routes << [method, path, action] end end
rails_routes()
click to toggle source
# File lib/openapi/routes_parser.rb, line 19 def rails_routes Rails.application.routes.routes end
routes_inspector()
click to toggle source
# File lib/openapi/routes_parser.rb, line 23 def routes_inspector ActionDispatch::Routing::RoutesInspector.new(rails_routes) end