ActionController::Routing::Routes.draw do |map| # Connect for single and multiple project installations def multiconnect(obj, path = '', options = {}) name = options.delete(:route_name) || 'connect' obj.send(name, PROJECT_ROUTE + path, options) obj.send(name, path, options) end map.home '', :controller => 'projects', :action => 'index' map.admin 'admin', :controller => 'admin/dashboard', :action => 'index' map.project PROJECT_ROUTE, :controller => 'project_area', :action => 'guide', :project_name => nil map.with_options :controller => 'login' do |omap| omap.login 'login', :action => 'login' omap.logout 'logout', :action => 'logout' end map.with_options :controller => 'account' do |omap| omap.account 'account', :action => 'account' omap.registration 'register', :action => 'register' omap.reset_password 'reset_password', :action => 'reset_password' omap.activation 'account/activate/:login/:code', :action => 'activate', :login => nil, :code => nil end map.with_options :controller => 'rss' do |omap| multiconnect omap, 'rss/:category', :action => 'feed' end map.with_options :controller => 'browse' do |omap| multiconnect omap, 'browse/*path', :action => 'browse' multiconnect omap, 'file/*path', :action => 'file' multiconnect omap, 'revisions/*path', :action => 'revisions' multiconnect omap, 'diff/:revision/:change', :action => 'unified_diff' end map.with_options :controller => 'changesets' do |omap| multiconnect omap, 'changesets/', :action => 'changesets' multiconnect omap, 'changeset/:revision', :action => 'changeset' end map.with_options :controller => 'tickets' do |omap| multiconnect omap, 'ticket/:id', :action => 'show' multiconnect omap, 'tickets/report/:report', :action => 'index' end multiconnect map, ':controller/:action/:id.:format' multiconnect map, ':controller/:action/:id' map.connect ':project_name/', :controller => 'project_area', :action => 'guide' end