The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Change log for Perl module Router::Generic:

2012-05-07    v0.021
  - DEPRECATED do not use for new code.

2012-03-23    v0.020
  - In route_for($uri [, $method ]) if we get no $uri then we just bail out.
  - This removes annoying "uninitialized value" warnings without introducing
    odd behavior.

2011-12-02    v0.019
  - Added some tests to validate the behavior of splat captures in routes.
  - Splat captures are like "/{*display}".

2011-11-29    v0.018
  - Removed some errant POD.

2011-11-28    v0.017
  - Default values (from the 'defaults' param) will always be added to the 'match' output
    unless they exist in the querystring input.

2010-11-23    v0.016
  - Fixes the following warning:
    "Use of uninitialized value in anonymous hash ({}) at /usr/local/share/perl/5.10.0/Router/Generic.pm line 254"

2010-11-13    v0.015
  - Routes with paths like /foo/bar.asp will now no longer auto-map to /foo/bar.asp/
    (no trailing "/" will be appended).

2010-08-05    v0.014
  - Calling $router->uri_for(...) with extra parameters not declared in the target
    will return a url with the extra parameters in the querystring - eg: /path/?foo=bar

2010-05-20    v0.013
  - Added `replace_route(%args)` - let's see how we like this.  It's not documented
    in case it gets removed in a subsequent release.

2010-03-27    v0.012
  - Routes with a path like "/foo/:city" and a target like "/bar-[:city:].asp"
    will now (correctly) produce a uri like "/bar-Dallas.asp?city=Dallas".
    Before this change, they would be resolved as "/bar-Dallas.asp" (which is sub-optimal).
  - Updated POD.
  - Shed a little more light on the route_for($uri [, $method ]) ...er...method.

2010-03-27    v0.011
  - Fixed some bugs related to form variables passed in.
  - Added 'route_for('/path/') method.

2010-03-27    v0.010
  - Routes like /trucks/:page with no default :page or with a default :page of undef or ""
    produced URIs like /trucks/[:page:] or /trucks// - which nobody wants.
  - New behavior is to produce a URI like /trucks/ instead of /trucks// or /trucks/[:page:].

2010-03-27    v0.009
  - Now paths like /:lang-:locale/{*Page} will parse the :lang and :locale properly.
  - Updated POD to reflect this improvement.
  - Added tests to verify this feature.

2010-03-26    v0.008
  - Calling $router->match(...) in list context would sometimes result in an undef
    return value - which is bad in list context, because of this kind of bug:
    if( my @matches = $router->match(...) ) {
      # You always get here even when no match was found:
    }# end if()

2010-03-26    v0.007
  - When $router->match(...) has multiple matches, it will return a list or arrayref
    depending on the context in which it is called.
  - Updated POD.
  - Updated tests.
  - Removed the "non-MVC" bit because it could be used for MVC-ish stuff actually.

2010-03-24    v0.006
  - If passed an arrayref of targets, match(...) will return an arrayref of targets.
    (This is useful when you want one as the default, and the other as the fallback.)

2010-03-23    v0.005
  - Route-matching when the route is declared with method '*' and matched with
    'GET' or 'POST' explicitly would fail.  This is now fixed.

2010-03-23    v0.004
  - Added 'method' parameter to add_route() and match() methods.
  - 'method' defaults to '*' - so you can safely ignore it if you would rather.
  - Added more tests to account for the extra features.
  - Added basic CRUD example in POD.

2010-03-22    v0.003
  - Forgot to update Changes file.

2010-03-22    v0.002
  - Renamed from Router::Lite to Router::Generic.
  - Added uri_for(...) method.
  - Added many tests.  Code-coverage is fairly high.
  - Route path grammar is 99.99% final.  Any future changes will be backwards-compatible.
  - Speed is acceptable, even with large routing tables.

2010-03-20    v0.001_01
  - Alpha level - Still under development.
  - Handles some path declarations and allows specification of default values.
  - Returns 'match()' results as a parameterized string.
  - Supports simple route caching.