0
@@ -5,6 +5,7 @@ module Merb
0
def self.extended(slice_module)
0
slice_module.meta_class.module_eval do
0
attr_accessor :identifier, :identifier_sym, :root, :file
0
+ attr_accessor :routes, :named_routes
0
attr_accessor :description, :version, :author
0
@@ -30,6 +31,12 @@ module Merb
0
# Stub to setup routes inside the host application.
0
def setup_router(scope); end
0
+ # Check if there have been any routes setup.
0
+ self.routes && !self.routes.empty?
0
+ # Return a value suitable for routes/urls.
0
@@ -86,6 +93,35 @@ module Merb
0
def collected_app_paths
0
@collected_app_paths ||= []
0
+ # Generate a url - takes the slice's :path_prefix into account.
0
+ # This is only relevant for default routes, as named routes are
0
+ # handled correctly without any special considerations.
0
+ # @param name<#to_sym,Hash> The name of the URL to generate.
0
+ # @param rparams<Hash> Parameters for the route generation.
0
+ # @return String The generated URL.
0
+ # @notes If a hash is used as the first argument, a default route will be
0
+ # generated based on it and rparams.
0
+ def url(name, rparams = {}, defaults = {})
0
+ defaults = rparams if name.is_a?(Hash) && defaults.empty?
0
+ rparams = name if name.is_a?(Hash)
0
+ raise "Named route not found: #{name}" unless self.named_routes[name]
0
+ uri = Merb::Router.generate(name, rparams, defaults)
0
+ defaults[:controller] = defaults[:controller].gsub(%r|^#{self.identifier_sym}/|, '') if defaults[:controller]
0
+ uri = Merb::Router.generate(name, rparams, defaults)
0
+ uri = self[:path_prefix] / uri unless self[:path_prefix].blank?
0
+ uri = "/#{uri}" unless uri[0,1] == '/'
0
+ Merb::Config[:path_prefix] ? Merb::Config[:path_prefix] + uri : uri
0
# The slice-level load paths to use when loading the slice.
Comments
No one has commented yet.