Skip to content

Commit

Permalink
cleaning up routes.rb by using with_scope, all tests are still passin…
Browse files Browse the repository at this point in the history
…g so most of the functionality is intact
  • Loading branch information
Kieran Pilkington committed Dec 29, 2008
1 parent 7e17a15 commit a29ce1e
Showing 1 changed file with 88 additions and 128 deletions.
216 changes: 88 additions & 128 deletions config/routes.rb
@@ -1,160 +1,120 @@
ActionController::Routing::Routes.draw do |map|
# The priority is based upon order of creation: first created -> highest priority.

# Sample of regular route:
# map.connect 'products/:id', :controller => 'catalog', :action => 'view'
# Keep in mind you can assign values other than :controller and :action

# Sample of named route:
# map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
# This route can be invoked with purchase_url(:id => product.id)

# You can have the root of your site routed by hooking up ''
# -- just remember to delete public/index.html.
# map.connect '', :controller => "welcome"

map.oai '/oai_pmh_repository', :controller => 'oai_pmh_repository', :action => 'index'

# Kieran Pilkington, 2008-09-03
# Got to have these above the default routes or it will error
# when it looks for a contact controller
map.basket_contact ':urlified_name/contact', :controller => "baskets", :action => 'contact'

# Walter McGinnis, 2007-01-08
# TODO: DRY this up
map.basket_with_format ':urlified_name/:controller/:action/:id.:format'
map.basket ':urlified_name/:controller/:action/:id'
### monitoring tools
map.with_options :controller => 'index_page' do |index_page|
# to make sure the rails process is answering
index_page.connect 'uptime.txt', :action => 'uptime'
# to make sure that the db is answering
index_page.connect 'db_uptime.txt', :action => 'db_uptime'
# to make sure that the db is answering
index_page.connect 'zebra_uptime.txt', :action => 'zebra_uptime'
# to make sure that registration is valid
index_page.connect 'validate_kete_net_link.xml', :action => 'validate_kete_net_link'
# for search engines, ask them not to go to certain places
index_page.connect 'robots.txt', :action => 'robots'
end

# Kieran Pilkington, 2008-12-09
# adding support for basket list feed
map.basket_list_rss ':urlified_name/baskets/rss.:format', :controller => "baskets", :action => 'rss'
# Various RSS feeds not associated with search
map.with_options :action => "rss" do |rss|
rss.basket_list_rss ':urlified_name/baskets/rss.:format', :controller => "baskets"
rss.tags_list_rss ':urlified_name/tags/rss.:format', :controller => "tags"
rss.basket_moderate_rss ':urlified_name/moderate/rss.:format', :controller => "moderate"
rss.basket_moderate_rss ':urlified_name/members/rss.:format', :controller => "members"
end

# Kieran Pilkington, 2008-12-09
# adding support for tags list feed
map.tags_list_rss ':urlified_name/tags/rss.:format', :controller => "tags", :action => 'rss'
# All search related routes (all, rss, for)
map.with_options :controller => 'search' do |search|

search.with_options :action => 'all' do |search_all|
search_all.basket_all ':urlified_name/all/:controller_name_for_zoom_class/'
search_all.basket_all_private ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/'
search_all.basket_all_contributed_by ':urlified_name/all/:controller_name_for_zoom_class/contributed_by/user/:contributor/'
search_all.basket_all_private_contributed_by ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/'
search_all.basket_all_of_category ':urlified_name/all/:controller_name_for_zoom_class/of/:extended_field/:limit_to_choice'
search_all.basket_all_private_of_category ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/of/:extended_field/:limit_to_choice'
search_all.basket_all_related_to ':urlified_name/all/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/'
search_all.basket_all_tagged ':urlified_name/all/:controller_name_for_zoom_class/tagged/:tag/'
search_all.basket_all_private_tagged ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/'
end

search.with_options :action => 'rss' do |search_rss|
search_rss.basket_all_rss ':urlified_name/all/:controller_name_for_zoom_class/rss.xml'
search_rss.basket_all_private_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/rss.xml'
search_rss.basket_all_contributed_by_rss ':urlified_name/all/:controller_name_for_zoom_class/contributed_by/user/:contributor/rss.xml'
search_rss.basket_all_private_contributed_by_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/rss.xml'
search_rss.basket_all_related_to_rss ':urlified_name/all/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/rss.xml'
search_rss.basket_all_tagged_rss ':urlified_name/all/:controller_name_for_zoom_class/tagged/:tag/rss.xml'
search_rss.basket_all_private_tagged_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/rss.xml'
search_rss.basket_search_contributed_by_rss ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug/rss.xml'
search_rss.basket_search_private_contributed_by_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug/rss.xml'
search_rss.basket_search_related_to_rss ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for/:search_terms_slug/rss.xml'
search_rss.basket_search_tagged_rss ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug/rss.xml'
search_rss.basket_search_private_tagged_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug/rss.xml'
search_rss.basket_search_rss ':urlified_name/search/:controller_name_for_zoom_class/for/:search_terms_slug/rss.xml'
search_rss.basket_search_private_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for/:search_terms_slug/rss.xml'
end

search.with_options :action => 'for' do |search_for|
search_for.basket_search_contributed_by ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug'
search_for.basket_search_private_contributed_by ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug'
search_for.basket_search_related_to ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for/:search_terms_slug'
search_for.basket_search_tagged ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug'
search_for.basket_search_private_tagged ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug'
search_for.basket_search ':urlified_name/search/:controller_name_for_zoom_class/for/:search_terms_slug'
search_for.basket_search_private ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for/:search_terms_slug'

search_for.with_options :search_terms => nil do |nil_search_terms|
nil_search_terms.basket_search_contributed_by_empty ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug'
nil_search_terms.basket_search_private_contributed_by_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug'
nil_search_terms.basket_search_related_to_empty ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for'
nil_search_terms.basket_search_tagged_empty ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for'
nil_search_terms.basket_search_private_tagged_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for'
nil_search_terms.basket_search_empty ':urlified_name/search/:controller_name_for_zoom_class/for'
nil_search_terms.basket_search_private_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for'
end
end

# Walter McGinnis, 2007-12-12
# adding support for moderator feed
map.basket_moderate_rss ':urlified_name/moderate/rss.:format', :controller => "moderate", :action => 'rss'
end

# Walter McGinnis, 2008-05-25
# adding support for basket members feed
map.basket_moderate_rss ':urlified_name/members/rss.:format', :controller => "members", :action => 'rss'
# active_scaffold routes
ACTIVE_SCAFFOLD_CONTROLLERS.each do |as_controller|
map.resources as_controller.to_sym, :active_scaffold => true
end

map.basket_index ':urlified_name', :controller => "index_page", :action => 'index'

map.basket_all_rss ':urlified_name/all/:controller_name_for_zoom_class/rss.xml', :controller => "search", :action => 'rss'
map.basket_all_private_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/rss.xml', :controller => "search", :action => 'rss'

map.basket_all ':urlified_name/all/:controller_name_for_zoom_class/', :controller => "search", :action => 'all'
map.basket_all_private ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/', :controller => "search", :action => 'all'

map.basket_all_contributed_by_rss ':urlified_name/all/:controller_name_for_zoom_class/contributed_by/user/:contributor/rss.xml', :controller => "search", :action => 'rss'
map.basket_all_private_contributed_by_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/rss.xml', :controller => "search", :action => 'rss'

map.basket_all_contributed_by ':urlified_name/all/:controller_name_for_zoom_class/contributed_by/user/:contributor/', :controller => "search", :action => 'all'
map.basket_all_private_contributed_by ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/', :controller => "search", :action => 'all'

map.basket_all_of_category ':urlified_name/all/:controller_name_for_zoom_class/of/:extended_field/:limit_to_choice', :controller => "search", :action => 'all'
map.basket_all_private_of_category ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/of/:extended_field/:limit_to_choice', :controller => "search", :action => 'all'

map.basket_all_related_to_rss ':urlified_name/all/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/rss.xml', :controller => "search", :action => 'rss'

map.basket_all_related_to ':urlified_name/all/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/', :controller => "search", :action => 'all'

map.basket_all_tagged_rss ':urlified_name/all/:controller_name_for_zoom_class/tagged/:tag/rss.xml', :controller => "search", :action => 'rss'
map.basket_all_private_tagged_rss ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/rss.xml', :controller => "search", :action => 'rss'

map.basket_all_tagged ':urlified_name/all/:controller_name_for_zoom_class/tagged/:tag/', :controller => "search", :action => 'all'
map.basket_all_private_tagged ':urlified_name/all/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/', :controller => "search", :action => 'all'

map.basket_search_contributed_by_rss ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'
map.basket_search_private_contributed_by_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'

map.basket_search_contributed_by ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug', :controller => "search", :action => 'for'
map.basket_search_private_contributed_by ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug', :controller => "search", :action => 'for'

map.basket_search_contributed_by_empty ':urlified_name/search/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug', :controller => "search", :action => 'for', :search_terms => nil
map.basket_search_private_contributed_by_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/contributed_by/user/:contributor/for/:search_terms_slug', :controller => "search", :action => 'for', :search_terms => nil

map.basket_search_related_to_rss ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'

map.basket_search_related_to ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for/:search_terms_slug', :controller => "search", :action => 'for'

map.basket_search_related_to_empty ':urlified_name/search/:controller_name_for_zoom_class/related_to/:source_controller_singular/:source_item/for', :controller => "search", :action => 'for', :search_terms => nil

map.basket_search_tagged_rss ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'
map.basket_search_private_tagged_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'

map.basket_search_tagged ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug', :controller => "search", :action => 'for'
map.basket_search_private_tagged ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for/:search_terms_slug', :controller => "search", :action => 'for'

map.basket_search_tagged_empty ':urlified_name/search/:controller_name_for_zoom_class/tagged/:tag/for', :controller => "search", :action => 'for', :search_terms => nil
map.basket_search_private_tagged_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/tagged/:tag/for', :controller => "search", :action => 'for', :search_terms => nil

map.basket_search_rss ':urlified_name/search/:controller_name_for_zoom_class/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'
map.basket_search_private_rss ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for/:search_terms_slug/rss.xml', :controller => "search", :action => 'rss'

map.basket_search ':urlified_name/search/:controller_name_for_zoom_class/for/:search_terms_slug', :controller => "search", :action => 'for'
map.basket_search_private ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for/:search_terms_slug', :controller => "search", :action => 'for'

map.basket_search_empty ':urlified_name/search/:controller_name_for_zoom_class/for', :controller => "search", :action => 'for', :search_terms => nil
map.basket_search_private_empty ':urlified_name/search/:privacy_type/:controller_name_for_zoom_class/for', :controller => "search", :action => 'for', :search_terms => nil
map.basket_contact ':urlified_name/contact', :controller => "baskets", :action => 'contact'

# James Stradling <james@katipo.co.nz>, 2008-04-15
# Map private files to the PrivateFilesController
# E.g. /documents/0000/0000/0011/Bio.txt
map.private_file '/:type/:a/:b/:c/:filename.*formats', :controller => "private_files", :action => 'show'

# will default to site basket (special case of basket)
# route site to search with DEFAULT_SEARCH_CLASS
# :all is true by default if there are no search_terms
map.connect '/search', :controller => "search"
# Catch everything else
map.basket_with_format ':urlified_name/:controller/:action/:id.:format'
map.basket ':urlified_name/:controller/:action/:id'

# Walter McGinnis, 2007-07-13
# if the site isn't configured, we don't setup our full routes
if Object.const_defined?('SystemSetting') and ActiveRecord::Base.connection.table_exists?('system_settings') and SystemSetting.find(:all).size > 0
skip_configuration = Object.const_defined?(:SKIP_SYSTEM_CONFIGURATION)
is_configured = false
if !skip_configuration &&
Object.const_defined?('SystemSetting') &&
ActiveRecord::Base.connection.table_exists?('system_settings') &&
SystemSetting.find(:all).size > 0
is_configured = eval(SystemSetting.find_by_name('Is Configured').value)
else
is_configured = false
end
if is_configured || Object.const_defined?(:SKIP_SYSTEM_CONFIGURATION)
if skip_configuration || is_configured
# comment this line and uncomment the next after initial migration
site_basket = Basket.find(1)
site_basket = Basket.find(1) unless skip_configuration # we skip a query here if running integration tests
site_urlified_name = !site_basket.nil? ? site_basket.urlified_name : 'site'
map.connect '', :controller => "index_page", :urlified_name => site_urlified_name
else
# not configured, redirect to homepage which is configuration page
map.connect '', :controller => "configure", :urlified_name => 'site'
end

# active_scaffold routes
ACTIVE_SCAFFOLD_CONTROLLERS.each do |as_controller|
map.resources as_controller.to_sym, :active_scaffold => true
end

# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
# map.connect ':controller/service.wsdl', :action => 'wsdl'

# default format route
# map.connect ':controller/:action/:id.:format'

# Install the default route as the lowest priority.
# map.connect ':controller/:action/:id'

### monitoring tools
# to make sure the rails process is answering
map.connect 'uptime.txt', :controller => "index_page", :action => 'uptime'
# to make sure that the db is answering
map.connect 'db_uptime.txt', :controller => "index_page", :action => 'db_uptime'
# to make sure that the db is answering
map.connect 'zebra_uptime.txt', :controller => "index_page", :action => 'zebra_uptime'
# to make sure that registration is valid
map.connect 'validate_kete_net_link.xml', :controller => "index_page", :action => 'validate_kete_net_link'
# for search engines, ask them not to go to certain places
map.connect 'robots.txt', :controller => "index_page", :action => 'robots'

map.connect '*path', :controller => 'application', :action => 'rescue_404' unless ActionController::Base.consider_all_requests_local
end

Expand Down

0 comments on commit a29ce1e

Please sign in to comment.