Module Cms::Routes
In: lib/cms/routes.rb

Methods

Public Instance methods

content_block_name - Should be a plural symbol matching the name of the content_block, like :dogs or donation_statuses

[Source]

    # File lib/cms/routes.rb, line 6
 6:   def content_blocks(content_block_name, options={}, &block)
 7:     content_block = content_block_name.to_s.classify.constantize
 8:     resources(*[content_block_name, default_routes_for_content_block(content_block).deep_merge(options)], &block)
 9:     if content_block.versioned?
10:       # I'm not sure why, but these named routes 
11:       # don't end up getting nested in the CMS namepace.
12:       # So for now I'm just hard-coding the stuff related to the CMS namespace
13:       send("version_cms_#{content_block_name}".to_sym, 
14:         "/cms/#{content_block_name}/:id/version/:version",
15:         :controller => "cms/#{content_block_name}",
16:         :action => "version",
17:         :conditions => {:method => :get})
18:       send("revert_to_cms_#{content_block_name}".to_sym, 
19:         "/cms/#{content_block_name}/:id/revert_to/:version",
20:         :controller => "cms/#{content_block_name}",
21:         :action => "revert_to",
22:         :conditions => {:method => :put})
23:     end
24:   end

[Source]

    # File lib/cms/routes.rb, line 26
26:   def default_routes_for_content_block(content_block)
27:     member_routes = {}
28:     member_routes[:publish] = :put if content_block.publishable?
29:     member_routes[:versions] = :get if content_block.versioned?
30:     member_routes[:usages] = :get if content_block.connectable?    
31:     {:member => member_routes}
32:   end

[Source]

     # File lib/cms/routes.rb, line 34
 34:   def routes_for_browser_cms
 35: 
 36:     namespace(:cms) do |cms|
 37:       
 38:       cms.home '/', :controller => 'home'
 39:       
 40:       cms.logout '/logout', :controller => 'sessions', :action => 'destroy'
 41:       cms.login '/login', :controller => 'sessions', :action => 'new', :conditions => { :method => :get }
 42:       cms.connect '/login', :controller => 'sessions', :action => 'create', :conditions => { :method => :post }      
 43:       cms.dashboard '/dashboard', :controller => 'dashboard'
 44:       cms.sitemap '/sitemap', :controller => 'section_nodes'
 45: 
 46:       cms.content_types '/content_types', :controller => 'content_types'
 47:       cms.resources :connectors, :member => {
 48:         :move_up => :put,
 49:         :move_down => :put,
 50:         :move_to_bottom => :put,
 51:         :move_to_top => :put
 52:       }
 53:       cms.resources :links
 54: 
 55:       cms.resources :pages, :member => {
 56:         :archive => :put,
 57:         :hide => :put,
 58:         :publish => :put,
 59:         :versions => :get
 60:       }, :collection => {
 61:         :publish => :put
 62:       }, :has_many => [:tasks]
 63:       version_cms_page '/cms/pages/:id/version/:version', :controller => 'cms/pages', :action => 'version', :conditions => {:method => :get}
 64:       revert_to_cms_page '/cms/pages/:id/revert_to/:version', :controller => 'cms/pages', :action => 'revert_to', :conditions => {:method => :put}
 65: 
 66:       cms.file_browser '/sections/file_browser.xml', :controller => 'sections', :action => 'file_browser', :format => "xml"
 67:       cms.resources :sections, :has_many => [:links, :pages]
 68: 
 69:       cms.resources :section_nodes, :member => {
 70:         :move_before => :put,
 71:         :move_after => :put,
 72:         :move_to_beginning => :put,
 73:         :move_to_end => :put,
 74:         :move_to_root => :put
 75:       }
 76:       cms.attachment '/attachments/:id', :controller => 'attachments', :action => 'show'
 77: 
 78:       cms.resources :tasks, :member => {:complete => :put}, :collection => {:complete => :put}
 79:       cms.toolbar '/toolbar', :controller => 'toolbar'
 80:       
 81:       # TODO: Make an actual content library controller 
 82:       # that redirects to the last content type you were working on
 83:       cms.content_library '/content_library', :controller => 'html_blocks' 
 84:       
 85:       cms.content_blocks :html_blocks
 86:       cms.content_blocks :portlets, :member => {:usages => :get}
 87:       cms.handler "/portlet/:id/:handler", 
 88:         :controller => "portlet", 
 89:         :action => "execute_handler", 
 90:         :conditions => {:method => :post}
 91:       
 92:       cms.content_blocks :file_blocks
 93:       cms.content_blocks :image_blocks
 94:       cms.content_blocks :category_types
 95:       cms.content_blocks :categories
 96:       cms.content_blocks :tags
 97:       
 98:       cms.administration '/administration', :controller => 'users'
 99:       
100:       cms.with_options :controller => "cache" do |cache|
101:           cache.cache "/cache", :action => "show", :conditions => {:method => :get}
102:         cache.connect "/cache", :action => "destroy", :conditions => {:method => :delete}
103:       end
104:             
105:       cms.resources :email_messages
106:       cms.resources :groups
107:       cms.resources :redirects
108:       cms.resources :page_partials, :controller => 'dynamic_views'
109:       cms.resources :page_templates, :controller => 'dynamic_views'
110:       cms.resources :page_routes do |pr|
111:         pr.resources :conditions, :controller => "page_route_conditions"
112:         pr.resources :requirements, :controller => "page_route_requirements"
113:       end
114:       cms.routes "/routes", :controller => "routes"
115:       cms.resources :users, :member => {
116:         :change_password => :get, 
117:         :update_password => :put,
118:         :disable => :put, 
119:         :enable => :put
120:       }
121:       
122:       if RAILS_ENV == "test" && File.expand_path(RAILS_ROOT) == File.expand_path(File.dirname(__FILE__) + "/../..")
123:         cms.content_blocks :content_block
124:       end
125:       
126:     end
127: 
128:     if PageRoute.table_exists?
129:       PageRoute.all(:order => "page_routes.name").each do |r|
130:         send((r.route_name || 'connect').to_sym, r.pattern, r.options_map)
131:       end
132:     end
133: 
134:     connect '*path', :controller => 'cms/content', :action => 'show'    
135:   end

[Validate]