CHANGES.md in jellyfish-0.6.0 vs CHANGES.md in jellyfish-0.8.0

- old
+ new

@@ -1,6 +1,77 @@ # CHANGES +## Jellyfish 0.8.0 + +### Incompatible changes + +* Now there's no longer Jellyfish#controller but Jellyfish.controller, + as there's no much point for making the controller per-instance. + You do this to override the controller method instead: + +``` ruby +class MyApp + include Jellyfish + def self.controller + MyController + end + class MyController < Jellyfish::Controller + def hi + 'hi' + end + end + get{ hi } +end +``` + +* You can also change the controller by assigning it. The same as above: + +``` ruby +class MyApp + include Jellyfish + class MyController < Jellyfish::Controller + def hi + 'hi' + end + end + controller MyController + get{ hi } +end +``` + +### Enhancements for Jellyfish core + +* Introduced Jellyfish.controller_include which makes it easy to pick + modules to be included in built-in controller. +* Introduced Controller#halt as a short hand for `throw :halt` +* Now default route is `//`. Using `get{ 'Hello, World!' }` is effectively + the same as `get(//){ 'Hello, World!' }` +* Now inheritance works. +* Now it raises TypeError if passing a route doesn't respond to :match. +* Now Jellyfish would find the most suitable error handler to handle + errors, i.e. It would find the error handler which would handle the + nearest exception class in the ancestors chain. Previously it would + only find the first one which matches, ignoring the rest. It would + also cache the result upon a lookup. + +### Enhancements for Jellyfish extension + +* Added `Jellyfish::ChunkedBody` which is similar to `Sinatra::Stream`. + +* Added `Jellyfish::MultiAction` which gives you some kind of ability to do + before or after filters. See README.md for usage. + +* Added `Jellyfish::NormalizedParams` which gives you some kind of Sinatra + flavoured params. + +* Added `Jellyfish::NormalizedPath` which would unescape incoming PATH_INFO + so you could match '/f%C3%B6%C3%B6' with '/föö'. + +### Enhancements for Jellyfish::Sinatra + +* Now `Jellyfish::Sinatra` includes `Jellyfish::MultiAction`, + `Jellyfish::NormalizedParams`, and `Jellyfish::NormalizedPath`. + ## Jellyfish 0.6.0 -- 2012-11-02 ### Enhancements for Jellyfish core * Extracted Jellyfish::Controller#call and Jellyfish::Controller#block_call