class Camping::CommandsHelpers::RoutesParser
Public Class Methods
new(app = Camping)
click to toggle source
# File lib/camping/commands.rb, line 68 def initialize(app = Camping) @parent_app, @routes = app, [] end
parse(app)
click to toggle source
# File lib/camping/commands.rb, line 64 def self.parse(app) new(app).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/camping/commands.rb, line 72 def parse @parent_app.routes collected_routes = [] make_routes = -> (a) { a::X.constants.map { |c| k = a::X.const_get(c) im = k.instance_methods(false).map!(&:to_s) methods = im & ["get", "post", "put", "patch", "delete"] if k.respond_to?:urls methods.each { |m| k.urls.each { |u| collected_routes.append Camping::CommandsHelpers::Route.new(m,c,a.to_s,u) } } end } } if @parent_app == Camping @parent_app::Apps.each {|a| make_routes.(a) } else make_routes.(@parent_app) end routes_collection = Camping::CommandsHelpers::RouteCollection.new(collected_routes) end