Class: Merb::Router::Behavior::Proxy

Class | Merb::Router::Behavior::Proxy
In: | lib/merb-core/dispatch/router/behavior.rb
Parent: | Object

Proxy catches any methods and proxies them to the current behavior. This allows building routes without constantly having to catching the yielded behavior object

:api: private

### Methods

new pop push redirect respond_to? url

### Public Class methods

new()

:api: private

### Public Instance methods

pop()

Removes the top-most behavior.

#### Notes

This occurs at the end of a nested scope (namespace, etc).

:api: private

push(behavior)

Puts a behavior on the bottom of the stack.

#### Notes

The behaviors keep track of nested scopes.

:api: private

redirect(url, opts = {})

Generates a Rack redirection response.

#### Notes

Refer to Merb::Rack::Helpers.redirect for documentation.

:api: public

respond_to?(*args)

Tests whether the top-most behavior responds to the arguments.

#### Notes

Behaviors contain the actual functionality of the proxy.

:api: private

url(name, *args)

There are three possible ways to use this method. First, if you have a named route, you can specify the route as the first parameter as a symbol and any paramters in a hash. Second, you can generate the default route by just passing the params hash, just passing the params hash. Finally, you can use the anonymous parameters. This allows you to specify the parameters to a named route in the order they appear in the router.

#### Parameters(Named Route)

name<Symbol>: | The name of the route.
args<Hash>: | Parameters for the route generation.

#### Parameters(Default Route)

args<Hash>: | Parameters for the route generation. This route will use the default route.

#### Parameters(Anonymous Parameters)

name<Symbol>: | The name of the route.
args<Array>: | An array of anonymous parameters to generate the route with. These parameters are assigned to the route parameters in the order that they are passed.

#### Returns

String: | The generated URL.

#### Examples

Named Route

Merb::Router.prepare do

      match("/articles/:title").to(:controller => :articles, :action => :show).name("articles")

end

url(:articles, :title => "new_article")

Default Route

Merb::Router.prepare do

      default_routes

end

url(:controller => "articles", :action => "new")

Anonymous Paramters

Merb::Router.prepare do

      match("/articles/:year/:month/:title").to(:controller => :articles, :action => :show).name("articles")

end

url(:articles, 2008, 10, "test_article")

:api: public

[Validate]