Commit Graph

19 Commits

Author SHA1 Message Date
Ryan Tomayko ccb653fafb Update CHANGES file with hoboken notes 2009-01-06 23:04:11 -08:00
Ryan Tomayko 50999bf3fc update sinatra.gemspec 2008-12-21 01:18:13 -08:00
Ryan Tomayko a734cf38ac I knew I shoulda taken that left turn at Hoboken
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
  instance.

* 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
  stuff.

* 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
  subclass.

* The "body.to_result" convention has been deprecated.

* The ServerError exception has been deprecated. Any Exception is now
  considered a ServerError.
2008-12-20 18:45:28 -08:00
Ryan Tomayko 69293f6ced doc/website cleanup 2008-11-02 04:55:23 -08:00
Simon Rozet fe1ed270d0 rake tasks to build a simple website 2008-11-02 04:33:32 -08:00
Karel Minarik d8a02423e9 rake task for generating rubyforge website; assets (logo, CSS) 2008-11-02 04:28:31 -08:00
Ryan Tomayko ff85aaf528 rake tasks for publishing API and gems to rubyforge 2008-09-07 19:40:18 -07:00
Ryan Tomayko 8c412cf5bf rake task for updating sinatra.gemspec files manifest 2008-09-07 19:08:34 -07:00
Ryan Tomayko 066345135e read gemspec in simulated github environment 2008-08-31 03:29:14 -07:00
Ryan Tomayko 0e367a5241 rake task for generating rdoc with hanna template
This uses the hanna command shipped with the hanna gem. The
preferred method of using is to require 'hanna/rdoctask' in
your Rakefile but this caused various gem depency errors (blame
Hoe, rdoc 2.0, Echoe, and rubyforge).

You have to install mislav's hanna gem from github:

  $ sudo gem install mislav-hanna --source=http://gems.github.com

Run the doc task to generate rdoc under doc/api:

  $ rake doc

See mislav's repo for more info on template usage:

  http://github.com/mislav/hanna

See the HAML docs for an example of the hanna template in action:

  http://haml.hamptoncatlin.com/docs/rdoc
2008-08-31 02:12:25 -07:00
Ryan Tomayko e31941dd92 add .gemspec; remove echoe 2008-08-31 02:12:25 -07:00
Blake Mizerany 983358b3c4 Freezing Rack into package to take care of upload issue 2008-04-15 19:41:42 -07:00
Ryan Tomayko a3bbfead68 Rakefile: completely remove test and doc tasks
It turns out Echoe creates doc and test tasks that do exactly what
we want.
2008-04-15 03:46:20 -04:00
Ryan Tomayko 415b75bb57 Fix unit tests running twice
Echoe creates a test task that works exactly like the one explicitly specified
in the Rakefile. Remove the explicit test task.
2008-04-13 23:15:03 -04:00
Blake Mizerany ca9ac7b5ae Sinatra 0.2.0 released 2008-04-11 16:29:36 -07:00
Blake Mizerany df800b5c26 Docs are started 2008-03-24 17:20:58 -07:00
Blake Mizerany 1f07ba27b2 No more Error codes. Map them by Class name 2008-02-24 16:43:39 -08:00
Blake Mizerany 9ee50b3082 * Default error messages
* Use SINATRA_ENV var if set
2007-11-29 18:35:06 -08:00
Blake Mizerany e1dcbb6d23 normalize for windows users 2007-11-21 17:37:52 -08:00