namespace :pakyow do
desc 'List all routes (method, path, group[name])' task :routes => [:stage] do Pakyow::Router.instance.sets.each do |set_data| set_name, set = set_data Pakyow.logger << "\n#{set_name} routes" all_routes = [] set.routes.each {|route_data| method, routes = route_data routes.each {|route| group = nil set.lookup[:grouped].each_pair {|name,routes| if routes.values.include?(route) group = name break end } name = route[2] name = "#{group}[#{name}]" if group all_routes << { method: method, path: File.join('/', route[4].to_s), name: name } } } all_routes.sort{|a,b| a[:path] <=> b[:path]}.each {|route| s = " #{route[:method].upcase}\t#{route[:path]}" s << ", #{route[:name]}" if route[:name] Pakyow.logger << s } Pakyow.logger << '' end end
end