Skip to content
Commits on Mar 15, 2013
  1. @rkh
Commits on Feb 10, 2013
  1. @postmodern

    Default host to localhost when in development mode.

    postmodern committed Feb 9, 2013
    * Running Rack apps on in development mode will allow malicious
      users on the local network (ex: Coffee Shop) to abuse or potentially
      exploit the app. Safer to default host to localhost when in development
Commits on Dec 30, 2011
  1. @rkh

    Merge branch 'extend-main'

    rkh committed Dec 30, 2011
Commits on Nov 15, 2011
  1. @lest
Commits on Nov 5, 2011
  1. @rkh
Commits on Sep 19, 2011
  1. @timfel
Commits on Jun 17, 2011
  1. @rkh
Commits on Mar 1, 2010
  1. @sr

    use -o over -b to set bind address

    sr committed Mar 1, 2010
    to match rackup behavior
Commits on Feb 5, 2010
  1. using -b over -h option from cli for bind address

    Blake Mizerany committed Feb 4, 2010
    I've also renamed all occurrences of
    to options.bind
Commits on Jan 28, 2010
  1. @rtomayko
Commits on Dec 14, 2009
  1. @rtomayko

    Revert 7f5d4df Deprecate Sinatra::Default, use Sinatra::Application

    rtomayko committed Dec 14, 2009
    We're not sure what we want to do with Default yet but it's
    most likely not going to end up as a simple alias for Application.
    This reverts Default back to the 0.9.x behavior. See #312 in
    lighthouse for more on this:
Commits on Dec 13, 2009
  1. @rtomayko
Commits on Dec 11, 2009
  1. @rtomayko
Commits on Oct 12, 2009
  1. @sr @rtomayko

    Remove #mime in main.rb

    sr committed with rtomayko Oct 4, 2009
Commits on Jun 7, 2009
  1. @rtomayko
Commits on Mar 24, 2009
  1. @rtomayko
Commits on Mar 12, 2009
  1. @sr @rtomayko
Commits on Mar 11, 2009
  1. @rtomayko
Commits on Jan 29, 2009
  1. @rtomayko
Commits on Jan 26, 2009
  1. @foca @rtomayko

    Add #helpers into Sinatra::Base [#134 state:resolved]

    foca committed with rtomayko Jan 26, 2009
    Signed-off-by: Ryan Tomayko <>
  2. @foca @bmizerany
Commits on Jan 22, 2009
  1. @rtomayko
Commits on Jan 20, 2009
  1. @wharsojo @rtomayko
Commits on Jan 6, 2009
  1. @rtomayko

    Depend on Rack 0.9.0 (up from 0.4.0)

    rtomayko committed Jan 6, 2009
    * Remove the Rack::MethodOverride class from sinatra since it's
      included with rack core now.
    * Update mime type handling to work with Rack 0.9.0's new
      Rack::Mime module.
Commits on Dec 21, 2008
  1. @rtomayko

    I knew I shoulda taken that left turn at Hoboken

    rtomayko committed Dec 13, 2008
    This is a fairly large reworking of Sinatra's innards. Although
    most of the internal implementation has been modified, it
    provides the same basic feature set and is meant to be compatible
    with Sinatra 0.3.2.
    * The Event and EventContext classes have been removed. Sinatra
      applications are now defined within the class context of a
      Sinatra::Base subclass; each request is processed within a new
    * Sinatra::Base can be used as a base class for multiple
      Rack applications within a single process and can be used as
      Rack middleware.
    * The routing and result type processing implementation has been
      simplified and enhanced a bit. There's a new route conditions
      system for things like :agent/:host matching and a request
      level #pass method has been added to allow an event handler to
      exit immediately, passing control to the next matching route.
    * Regular expressions may now be used in route patterns. Captures
      are available as an array from "params[:captures]".
    * The #body helper method now takes a block. The block is not
      evaluated until an attempt is made to read the body.
    * Options are now dynamically generated class attributes on the
      Sinatra::Base subclass (instead of OpenStruct); options are
      inherited by subclasses and may be overridden up the
      inheritance hierarchy. The Base.set manages all option related
    * The application file (app_file) detection heuristics are bit
      more sane now. This fixes some bugs with reloading and
      public/views directory detection. All thin / passenger issues
      of these type should be better now.
    * Error mappings are now split into to distinct layers: exception
      mappings and custom error pages. Exception mappings are registered
      with 'error(Exception)' and are run only when the app raises an
      exception. Custom error pages are registered with error(status_code)
      and are run any time the response has the status code specified.
      It's also possible to register an error page for a range of status
      codes: 'error(500..599)'.
    * The spec and unit testing extensions have been modified to take
      advantage of the ability to have multiple Sinatra applications.
      The Sinatra::Test module must be included within the TestCase
      in order to take advantage of these methods (unless the
      'sinatra/compat' library has been required).
    * Rebuilt specs from scratch for better coverage and
      organization. Sinatra 3.2 unit tests have been retained
      under ./compat to ensure a baseline level of compatibility with
      previous versions; use the 'rake compat' task to run these.
    A large number of existing Sinatra idioms have been deprecated but
    continue to be supported through the 'sinatra/compat' library.
    * The "set_option" and "set_options" methods have been deprecated
      due to redundancy; use "set".
    * The "env" option (Sinatra::Base.env) has been renamed to "environment"
      and deprecated because it's too easy to confuse with the request-level
      Rack environment Hash (Sinatra::Base#env).
    * The request level "stop" method has been renamed "halt" and
      deprecated. This is for consistency with `throw :halt`.
    * The request level "entity_tag" method has been renamed "etag" and
      deprecated. Both versions were previously supported.
    * The request level "headers" method has been deprecated. Use
      response['Header-Name'] to access and modify response headers.
    * Sinatra.application is deprecated. Use Sinatra::Application instead.
    * Setting Sinatra.application = nil to reset an application is
      deprecated. You shouldn't have to reset objects anymore.
    * The Sinatra.default_options Hash is deprecated. Modifying this object now
      results in "set(key, value)" invocations on the Sinatra::Base
    * The "body.to_result" convention has been deprecated.
    * The ServerError exception has been deprecated. Any Exception is now
      considered a ServerError.
Something went wrong with that request. Please try again.