Module: Precious::Views::RouteHelpers
Constant Summary collapse
- ROUTES =
{ 'gollum' => { assets: 'assets', last_commit_info: 'last_commit_info', latest_changes: 'latest_changes', upload_file: 'upload_file', create: 'create', delete: 'delete', edit: 'edit', overview: 'overview', history: 'history', rename: 'rename', revert: 'revert', preview: 'preview', compare: 'compare', search: 'search' } }
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
48 49 50 51 52 53 54 |
# File 'lib/gollum/views/helpers.rb', line 48 def self.included(base) @@route_methods = {} self.parse_routes(ROUTES) define_method :routes_to_json do @@route_methods.to_json end end |
.parse_routes(routes, prefix = '') ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/gollum/views/helpers.rb', line 34 def self.parse_routes(routes, prefix = '') routes.each do |name, path| if path.respond_to?(:keys) self.parse_routes(path, "#{prefix}/#{name}") else route_path = "#{prefix}/#{path}" @@route_methods[name.to_s] = route_path define_method :"#{name.to_s}_path" do page_route(route_path) end end end end |
Instance Method Details
#clean_url(*url) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/gollum/views/helpers.rb', line 60 def clean_url(*url) url.compact! return nil if url.empty? _url = ::File.join(*url) _url.gsub!(%r{/{2,}}, '/') _url.gsub!(%r{\?}, '%3F') _url end |
#page_route(page = nil) ⇒ Object
56 57 58 |
# File 'lib/gollum/views/helpers.rb', line 56 def page_route(page = nil) clean_url("/#{@base_url}", page) end |