# # # # # # # # #
# /49/route_tables.rb
#
# by Jan Lelis
# e-mail: mail@janlelis.de
# type/version: ruby
# snippet url: http://rbJL.net/49/route_tables.rb
# original post: http://rbJL.net/49-railsrc-rails-console-snippets
# license: CC-BY (DE)
#
# (c) 2011 Jan Lelis.
# hirb view for a route
class Hirb::Helpers::Route < Hirb::Helpers::AutoTable
def self.render(output, options = {})
super( output.requirements.map{ |k,v|
[k, v.inspect]
}, options.merge({
:headers => [output.name || '', "#{ output.verb || 'ANY' } #{ output.path }"],
:unicode => true,
:description => nil,
}) )
end
end
Hirb.add_view ActionDispatch::Routing::Route, :class => Hirb::Helpers::Route
# short and long route list
def routes(long_output = false)
if long_output
Rails.application.routes.routes.each{ |e|
puts Hirb::Helpers::Route.render(e)
}
true
else
Hirb::Console.render_output Rails.application.routes.routes.map{|e|
[e.name || '', e.verb || 'ANY', e.path]
},{
:class => Hirb::Helpers::AutoTable,
:headers => %w<name verb path>,
}
end
end
# get a specific route via index or name
def route(index_or_name)
route = case index_or_name
when Integer
Rails.application.routes.routes[ index_or_name ]
when Symbol # named route
Rails.application.routes.named_routes.get index_or_name
end
end
# access to routeset for easy recognize / generate
def r
ActionController::Routing::Routes
end