Commits on Mar 7, 2009
  1. Add 'rake spec' task

    rtomayko committed Mar 7, 2009
Commits on Feb 21, 2009
  1. Rack::Backstage - maintenance page middleware

    vangberg committed with rtomayko Feb 19, 2009
    If specified file exists, serve that one. Convenient for
    maintenance pages.
Commits on Feb 9, 2009
  1. Add Rack::RelativeRedirect

    jeremyevans committed with rtomayko Feb 9, 2009
    Transforms relative paths in redirects to absolute URLs.
    This allows your web applications to use simple relative paths in
    their redirects if they want, so they don't have to worry about
    the url scheme, server name, or port.  Absolute URLs are not
    modified.  This uses a sensible default based on the environment,
    but gives the user full control by allowing them to specify a block
    that provides the absolute part of the url (e.g.
    Currently, this only takes affect if the response code is 301-303,
    I'm not sure if other status codes should be considered, but they
    should be easy to add if so.  Also,  this currently only considers
    Locations starting with http:// or https:// as absolute URLs.  If
    other protocol schemes should be considered, those can be added
    This code will fail if the Location includes the server name part
    but not the protocol scheme (e.g. Location: //
    If those should be allowed, we can do so, but that's also a valid
    relative path, so it's not without its problems.
    This implementation works with both relative and absolute paths.
    If a relative path is given (not starting with a slash), it
    is made relative to the request path.  I'm not sure if this works
    perfectly, though it passes the specs I wrote.
  2. Added Rack::Deflect - DOS protection middleware

    tj committed with rtomayko Feb 4, 2009
    Functional, yet expermental middleware for protecting
    against Denial-of-service attacks.
  3. Add Rack::ResponseCache

    jeremyevans committed with rtomayko Feb 7, 2009
    The included RDoc gives a good description of the use of this.
    Basically, successful responses for GET requests without query
    strings are cached either to disk or to a user provided ruby object
    (such as a hash or memcache).
    In the most basic form, this does basically the same thing as Rails'
    page caching, but there is a lot more flexibility, since you can
    provide your own cache object as well as the block that maps request
    paths to file system paths or cache keys.
Commits on Feb 7, 2009
  1. Add Signals middleware

    josh committed Feb 7, 2009
Commits on Feb 3, 2009
  1. Require the right file.

    cee-dub committed Feb 3, 2009
Commits on Feb 2, 2009
  1. Add Rack::NotFound

    jcrosby committed Feb 2, 2009
Commits on Feb 1, 2009
  1. Autoload :Config

    jcrosby committed Feb 1, 2009
  2. Add Rack::Config

    jcrosby committed Feb 1, 2009
    Rack::Config is shared configuration for cooperative middleware,
    pulled from the rack-config gem.
Commits on Jan 23, 2009
  1. 0.9.0 gem release

    rtomayko committed Jan 23, 2009
  2. Require 'test/spec' explicitly in all tests

    rtomayko committed Jan 23, 2009
    This fixes: gem install rack-contrib --test
  3. Add Rack::NestedParams; based on Rails UrlEncodedPairParser

    mislav committed with rtomayko Jan 14, 2009
    * Cleaned up whitespace errors [rtomayko]
    * Added note to README [rtomayko]
Commits on Jan 17, 2009
  1. Add RouteExceptions

    manveru committed Jan 17, 2009
Commits on Jan 14, 2009
  1. Add missing a test

    lifo committed Jan 14, 2009
  2. After callbacks should be able to alter the response. They now take r…

    lifo committed Jan 14, 2009
    …esponse as the argument for 'call'. Example :
    class Gzip
      def call(response)
        status, headers, body = response
        [200, headers, compressed_body]
    application = do
      after Gzip
  3. Add Rack::Callbacks. Example :

    lifo committed Jan 14, 2009
    application = do
      before Filter1, arguments
      before Filter1
      after Hourkeeping
    end do
      run application
Commits on Jan 13, 2009
  1. Rack::Evil - The name says it all

    lifo committed Jan 13, 2009
  2. Move all sources into rack/contrib/

    rtomayko committed Jan 12, 2009
    WARNING: This may break your code. The rack-contrib classes
    still define themselves under the Rack module but the file
    locations have changed.
Commits on Jan 11, 2009
  1. GC in ensure, just to make sure

    manveru committed Jan 11, 2009
  2. Add Rack::GarbageCollector middleware

    rtomayko committed Jan 11, 2009
    Calls GC.start after each request. This is a really simplistic
    implementation but I've found it useful in debugging potential
    memory leaks.
Commits on Dec 31, 2008