R
Ryan Tomayko
Sinatra 0.9.1 is a feature release. Highlights include support for
running on Ruby 1.9.1, a shiny new API for extensions/plugins, and
better support for building Rack middleware. This release is backward
compatible with 0.9.0 and 0.3.x.
gem install sinatra
For more information, see:
http://www.sinatrarb.com
From the CHANGES file:
* Sinatra now runs under Ruby 1.9.1 [#61]
* Route patterns (splats, :named, or Regexp captures) are now passed
as arguments to the block. [#140]
* The "helpers" method now takes a variable number of modules along
with the normal block syntax. [#133]
* New request-level #forward method for middleware components: passes
the env to the downstream app and merges the response status, headers,
and body into the current context. [#126]
* Requests are now automatically forwarded to the downstream app when
running as middleware and no matching route is found or all routes
pass.
* New simple API for extensions/plugins to add DSL-level and
request-level methods. Use Sinatra.register(mixin) to extend the DSL
with all public methods defined in the mixin module; use
Sinatra.helpers(mixin) to make all public methods defined in the mixin
module available at the request level. [#138] See
http://www.sinatrarb.com/extensions.html for details.
* Named parameters in routes now capture the "." character. This
makes routes like "/ath/:filename" match against requests like
"/foo/bar.txt"; in this case, "params[:filename]" is "bar.txt".
Previously, the route would not match at all.
* Added request-level "redirect back" to redirect to the referring URL.
* Added a new "clean_trace" option that causes backtraces dumped to
rack.errors and displayed on the development error page to omit
framework and core library backtrace lines. The option is enabled by
default. [#77]
* The ERB output buffer is now available to helpers via the @_out_buf
instance variable.
* It's now much easier to test sessions in unit tests by passing a
":session" option to any of the mock request methods. e.g.,
get '/', {}, :session =3D> { 'foo' =3D> 'bar' }
* The testing framework specific files ('sinatra/test/spec',
'sinatra/test/bacon', 'sinatra/test/rspec', etc.) have been
deprecated. See http://sinatrarb.com/testing.html for instructions on
setting up a testing environment with these frameworks.
* The request-level #send_data method from Sinatra 0.3.3 has been
added for compatibility but is deprecated.
* Fix rovides causing crash on any request when request has no
Accept header [#139]
* Fix that ERB templates were evaluated twice per "erb" call.
* Fix app-level middleware not being run when the Sinatra application
is run as middleware.
* Fixed some issues with running under Rack's CGI handler caused by
writing informational stuff to stdout.
* Fixed that reloading was sometimes enabled when starting from a
rackup file [#110]
* Fixed that "." in route patterns erroneously matched any character
instead of a literal ".". [#124]
All together, a little over 60 tickets were filed away in lighthouse,
making this one of the most active releases to date:
http://sinatra.lighthouseapp.com/projects/9779/tickets/bins/14820
Commit history:
http://github.com/sinatra/sinatra/commits/0.9.1
A large amount of energy was spent on documentation. Sinatra's website
was shuffled around a bit and we've begun documenting... everything.
Here's the first fruits of that labor:
http://www.sinatrarb.com/documentation.html
http://www.sinatrarb.com/configuration.html
http://www.sinatrarb.com/testing.html
http://www.sinatrarb.com/extensions.html
These people contributed code and/or doc patches to this release: Ryan
Tomayko (133), Simon Rozet (44), Blake Mizerany (33), Markus Prinz
(7), Nicolas Sanguinetti (4), Karel Minarik (4), raggi (2), Brandon
Dimcheff (2), Harry Vanberg (2), Neal Lindsay (2), Kevin Fullerton
(2), Jon Maddox (2), Scott Wisely (2), Widi Harsojo (1), Sam Roberts
(1), S. Brent Faulkner (1), Pat Nakajima (1), Matias K=C3=A4kel=C3=A4 (1), =
Julio
Capote (1), Devlin Daley (1), Aupajo (1), Andreas Haller (1), zapnap
(1), foca (1), beenimble (1), Victor Igumnov (1), Brian Deterling (1),
and Chris Schneider (1). Thanks!
running on Ruby 1.9.1, a shiny new API for extensions/plugins, and
better support for building Rack middleware. This release is backward
compatible with 0.9.0 and 0.3.x.
gem install sinatra
For more information, see:
http://www.sinatrarb.com
From the CHANGES file:
* Sinatra now runs under Ruby 1.9.1 [#61]
* Route patterns (splats, :named, or Regexp captures) are now passed
as arguments to the block. [#140]
* The "helpers" method now takes a variable number of modules along
with the normal block syntax. [#133]
* New request-level #forward method for middleware components: passes
the env to the downstream app and merges the response status, headers,
and body into the current context. [#126]
* Requests are now automatically forwarded to the downstream app when
running as middleware and no matching route is found or all routes
pass.
* New simple API for extensions/plugins to add DSL-level and
request-level methods. Use Sinatra.register(mixin) to extend the DSL
with all public methods defined in the mixin module; use
Sinatra.helpers(mixin) to make all public methods defined in the mixin
module available at the request level. [#138] See
http://www.sinatrarb.com/extensions.html for details.
* Named parameters in routes now capture the "." character. This
makes routes like "/ath/:filename" match against requests like
"/foo/bar.txt"; in this case, "params[:filename]" is "bar.txt".
Previously, the route would not match at all.
* Added request-level "redirect back" to redirect to the referring URL.
* Added a new "clean_trace" option that causes backtraces dumped to
rack.errors and displayed on the development error page to omit
framework and core library backtrace lines. The option is enabled by
default. [#77]
* The ERB output buffer is now available to helpers via the @_out_buf
instance variable.
* It's now much easier to test sessions in unit tests by passing a
":session" option to any of the mock request methods. e.g.,
get '/', {}, :session =3D> { 'foo' =3D> 'bar' }
* The testing framework specific files ('sinatra/test/spec',
'sinatra/test/bacon', 'sinatra/test/rspec', etc.) have been
deprecated. See http://sinatrarb.com/testing.html for instructions on
setting up a testing environment with these frameworks.
* The request-level #send_data method from Sinatra 0.3.3 has been
added for compatibility but is deprecated.
* Fix rovides causing crash on any request when request has no
Accept header [#139]
* Fix that ERB templates were evaluated twice per "erb" call.
* Fix app-level middleware not being run when the Sinatra application
is run as middleware.
* Fixed some issues with running under Rack's CGI handler caused by
writing informational stuff to stdout.
* Fixed that reloading was sometimes enabled when starting from a
rackup file [#110]
* Fixed that "." in route patterns erroneously matched any character
instead of a literal ".". [#124]
All together, a little over 60 tickets were filed away in lighthouse,
making this one of the most active releases to date:
http://sinatra.lighthouseapp.com/projects/9779/tickets/bins/14820
Commit history:
http://github.com/sinatra/sinatra/commits/0.9.1
A large amount of energy was spent on documentation. Sinatra's website
was shuffled around a bit and we've begun documenting... everything.
Here's the first fruits of that labor:
http://www.sinatrarb.com/documentation.html
http://www.sinatrarb.com/configuration.html
http://www.sinatrarb.com/testing.html
http://www.sinatrarb.com/extensions.html
These people contributed code and/or doc patches to this release: Ryan
Tomayko (133), Simon Rozet (44), Blake Mizerany (33), Markus Prinz
(7), Nicolas Sanguinetti (4), Karel Minarik (4), raggi (2), Brandon
Dimcheff (2), Harry Vanberg (2), Neal Lindsay (2), Kevin Fullerton
(2), Jon Maddox (2), Scott Wisely (2), Widi Harsojo (1), Sam Roberts
(1), S. Brent Faulkner (1), Pat Nakajima (1), Matias K=C3=A4kel=C3=A4 (1), =
Julio
Capote (1), Devlin Daley (1), Aupajo (1), Andreas Haller (1), zapnap
(1), foca (1), beenimble (1), Victor Igumnov (1), Brian Deterling (1),
and Chris Schneider (1). Thanks!