public
Description: master merb branch
Homepage: http://www.merbivore.com
Clone URL: git://github.com/wycats/merb.git
snusnu (author)
Thu Oct 01 15:05:19 -0700 2009
commit  aa09e3a2cc6d7b64441ec49b6a64a701478b39c2
tree    e843e8d5fcf8730f6d8eb21f37df503d7072b76a
parent  b26df5a35bbd373cefabf9313b8f5ec3f3fc2464
merb / merb-action-args
name age message
..
file LICENSE Mon Sep 22 22:30:22 -0700 2008 Fix license files in merb-more. [michaelklishin]
file README Wed Feb 06 17:34:05 -0800 2008 Action Args [Yehuda Katz]
file Rakefile Sun Oct 04 13:14:57 -0700 2009 Changed plugin dependencies to "~> #{Merb::VERS... [snusnu]
file TODO Thu Feb 07 00:27:41 -0800 2008 Empty merb-assets structure [Yehuda Katz]
directory lib/ Loading commit data...
directory spec/ Wed Mar 18 12:48:48 -0700 2009 Revert "Made it raise NotImplemented if you don... [mattetti]
merb-action-args/README
merb-action-args
================

A plugin for the Merb framework that provides support for arguments to actions that 
come in from the query.

==== Basics

{{[
class Foo < Merb::Controller
  def bar(baz)
    bar
  end
end
]}}

Hitting "/foo/bar?baz=bat" will call foo("bat").

Hitting "/foo/bar" will raise a BadRequest (Status 400) error.

==== Defaults

{{[
class Foo < Merb::Controller
  def bar(baz, bat = "hola")
    "#{baz} #{bat}"
  end
end
]}}

Hitting "/foo/bar?baz=bat" will call foo("bat", "hola")

Hitting "/foo/bar?baz=bat&bat=whaa" will call foo("bat", "whaa")

Hitting "/foo/bar" will still raise a BadRequest.

==== Out of order defaults

{{[
class Foo < Merb::Controller
  def bar(one, two = "dos", three = "tres")
    "#{one} #{two} #{three}"
  end
end
]}}

The interesting thing here is that hitting "/foo/bar?one=uno&three=three" will call
foo("uno", "dos", "three"). In other words, the defaults can be in any order, and 
merb-action-args will figure out where to fill in the holes.