Methods

Merb::Slices::Support

Public Instance Methods

slice_url(slice_name, *args) click to toggle source

Generate a slice url - takes the slice’s :path_prefix into account.

@param slice_name<Symbol>

The name of the slice - in identifier_sym format (underscored).

@param *args>

There are several possibilities regarding arguments:
- when passing a Hash only, the :default route of the current 
  slice will be used
- when a Symbol is passed, it's used as the route name
- a Hash with additional params can optionally be passed

@return <String> A uri based on the requested slice.

@example slice_url(:awesome, :format => ‘html’) @example slice_url(:forum, :posts, :format => ‘xml’)

# File lib/merb-slices/controller_mixin.rb, line 25
def slice_url(slice_name, *args)
  opts = args.last.is_a?(Hash) ? args.pop : {}
  route_name = args[0].is_a?(Symbol) ? args.shift : :default
  
  routes = Merb::Slices.named_routes[slice_name]
  unless routes && route = routes[route_name]
    raise Merb::Router::GenerationError, "Named route not found: #{route_name}"
  end
  
  args.push(opts)
  route.generate(args, params)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.