Ramaze 2012.12.08 has just been released after being delayed for several
months. As mentioned in the previous release announcement this release is
not backwards compatible. Because of this it is recommended to carefully
read this Email as well as the upgrade notes which can be found here:
This new version can be installed as following:
$ gem install ramaze
$ gem install ramaze -v 2012.12.08
- Bug fix for the Sequel cache that would cause it to store session data
for all users.
- Ramaze::Cache is now app-aware instead of always using "pristine" for
the unique identifier. See commit edabd3c9a476854b72fe2caaa60b25d6c6e60aff
for more information.
- A bug in
generate_mapping has been fixed, this bug would cause it to
sometimes incorrectly map URLs and controllers.
- Session IDs are re-generated when logging a user out using the User
- After uploading a file using the file helper the file handle is
closed instead of leaving the file as is.
- Big performance increase due to changes in Innate (more on this
- Escaping of % sequences when using the Syslog logger.
- Lots of old code such as helpers, loggers and snippets have been
removed (see the upgrade notes for the specific details).
- Various documentation changes such as spelling errors and formatting.
- CSRF tokens no longer expire until the session is destroyed, this
makes it possible to use the same session in multiple browser
- Various changes for Ramaze developers to make it easier to develop and
release new versions of Ramaze.
As mentioned in this Email and the previous release announcement this version
is not backwards compatible. A while ago Michael introduced a change in
Innate that speeds it up tremendously by caching various parts of Innate that
don't change during runtime. This change however meant some code had to be
removed, this in turn gave us a chance to change a few things in Ramaze/Innate
in terms of how it handles middleware.
For those who want to upgrade to this new version I strongly recommend you to
read the upgrade notes mentioned above. These notes explain what has been
removed and how to change your code so that it works with the new version of
If you happen to bump into any issues or are simply confused feel free to open
an issue on the Github issue tracker or pop in #ramaze on Freenode.
Ramaze 2012.04.14 was just released, this release is mostly a bug fix
release. This release does not contain any of the Innate/Ramaze
improvements as mentioned in the previous release announcement, those
will be put in the next release (of which the date has not yet been
- The Redis adapter (Ramaze::Cache::Redis) has been fixed so that it
works with sessions, previously this would result in "Can't convert
into symbol" errors and the like. This problem was caused by not
encoding data using Marshal. Thanks to EdvardM for reporting the
- The Redis cache adapter namespaces keys just like the other adapters.
- Ramaze::Cache::MemCache has been updated for the latest version of
Dalli and should no longer display deprecation warnings. The minimum
required version of Dalli has been set to at least 2.0.2.
- Various documentation improvements and additions.
- The HTML of the pagination helper can now be customized, thanks to
Leucos and bougyman for adding it.
I also like to remind you that the next release of Ramaze will not be
backwards compatible with previous releases. This is because manveru
made a few changes to Innate that make it a lot faster, this change
however, required the removal of the middleware compiler (in order to
keep Innate under 2k LOC). In the coming days Ramaze will be updated so
that it will work properly with these changes. An announcement will be
made when these changes have been comitted so that developers can
prepare for this release.
As always, for any information or questions you're more than welcome to
join the IRC channel #ramaze on freenode.
Today marks the day of another Ramaze release, Ramaze 2012.03.07. With this
release also comes a new version of Innate, also 2012.03. A full list of the
changes of both frameworks can be found below.
However, there is one important change that you should be aware of: Ramaze is
no longer dual licensed under the GPL/Ruby licenses but instead is now licensed
under the MIT license. This license gives more freedom and is a lot easier to
understand. For those interested the conversation that started the idea of
changing the license can be found here: https://gist.github.com/1664358.
Changelog for Ramaze
- Various documentation improvements, massive thanks to John Pagonis for
- CSRF tokens are re-generated on valid requests. This fixes the problem
of these tokens being invalidated after 15 minutes regardless of
valid requests being executed or not.
- View adapters automatically install required Gems using
- Support for the Slim template engine thanks to Marc Weber.
- Various small code cleanups such as the removal of trailing
whitespace, YARD formatting issues, etc.
Changelog for Innate
- Fixed various YARD formatting issues.
- The render helper can now render views that don't have corresponding
methods when the trait
:needs_method is set to true. This means that
render_view(:foo) works if there's a view "foo" but not
method "foo()". Previously doing this would trigger an error saying
the render call required a method.
- Fixed an issue for Rack::Cascade in Rack 1.4.1.
- The speed of Innate::Cache has been improved and should trigger less
With this blog post I'd also like to announce some upcoming changes in both
Innate and Ramaze. Earlier today Michael managed to make some patches for
Innate that resulted in a massive performance increase (from 300 reqs/sec to
However, for this patch to be pulled into Innate various changes have to be
made which in turn would lead to Innate using more than 2k LOC. To work around
this we've been thinking of throwing a few things (that were annoying in the
first place) away. These are Innate::Session and the middleware compiler. The
former isn't a huge issue as Rack already has a perfectly fine way of handling
sessions. The latter however is a very big change and will break a lot of
existing applications out there, hence this announcement.
The removal of the middleware compiler would mean that all the methods related
to "compiling" the middleware list (methods such as Innate.middleware!) will be
removed, thus breaking existing code that relies on the presence of these
The advantage of this is that both Innate and Ramaze will instead use the code
provided by Rack, thus making it easier for us to maintain both frameworks as
well as making it easier for others to use Rack middlewares without having to
learn how to use the middleware compiler.
While none of these changes have been pushed to Github yet it's more than
likely that this will happen in the near future as we agreed that such big
performance improvements were worth the effort of breaking existing code. Once
we have determined in which version these changes will be included I'll send
another email to notify developers so that they can prepare themselves and
This release is a relatively small release containing only a few changes:
- Ramaze has been updated to work with the newest version(s) of Rack as 1.4
introduced a few changes related to dealing with static files.
- A few variables that were shadowed by other variables have been renamed.
- A few small changes to the documentation.
- The CSRF helper now uses request.ip/request.host instead of directly using
request.env. The latter would cause issues when proxying requests to Ramaze
(e.g. when running it on Heroku).
Innate has also been updated (new version is 2011.12) to work with Rack 1.4.
Because of the changes in Rack Ramaze 2011.12.28 requires Innate 2011.12 or
Today marks the day of a new Ramaze release. It took a while for a new release
to show up (the last one was in July) but don't worry, it was worth the wait.
Below is a list of the most important changes and additions.
input_checkbox method now takes a hash or array as it's checked
value (on top of a normal string based value). This makes it possible to
select multiple checkboxes. See commit
b82571a1b5c933f465c3af0d4965348298a57664 for more information.
- Lars Olsson contributed an upload helper (
makes it easy to handle uploaded files.
- ramaze/rest has been removed as it didn't even work properly.
Ramaze::Helper::Layout has been re-written so that multiple calls to
set_layout() don't remove previous layouts. See
05cc35a477c838633b6c176803a6e413af749eff for more details on this change.
- Ramaze.setup has been updated so that it works with the most recent version
of Rubygems as well as with older versions. This should prevent any
deprecation warnings from popping up.
- Mustache templates can now use the .mustache extension.
- The blog example has been re-written from scratch (examples/app/blog).
- A cache driver for Redis has been added (
- Ramaze now runs on all available Ruby distributions such as REE, Rubinius and
Another massive change is that starting with this release Ramaze will no longer
use Sphinx for it's user guide but instead now uses a fully YARD based
documentation. More information on this change can be read in the following
The Ramaze team is proud to announce the release of Ramaze version 2011.07.25.
This new release contains quite a few changes so it's best to read through them
Ramaze::Log::RotatingInformer can now be used as a Rack middleware.
Ramaze::Helper::Layout#set_layout has been modified in such a way that it's
easier to specify method specific layouts, see commit
or lib/ramaze/helper/layout.rb for more information.
- All remaining ETag issues have been solved.
Ramaze::Cache::Sequel has been re-written, massive thanks to Lars Olsson for
the contribution. See commit c5587c0d3feda8ca2c89399418ac1132d0236fcb
or lib/ramaze/cache/sequel.rb for more information.
Ramaze::Cache::MemCache has been re-written and now uses Dalli. See commit
or lib/ramaze/cache/memcache.rb for more information.
- Pathname errors have been resolved.
- The layout of the prototype has been updated to reflect the new design of the
Ramaze::Helper::BlueForm#input_radio now accept the options
:show_value which can be used to show/hide the values/labels of these
- The Email contribution has been moved to Ramaze::Helper::Email and had
- The HTTP Digest helper has been removed in favor of Rack::Auth.
- User objects are no longer stored in the session when using
Ramaze::Helper::User, it may not always be possible to Marshal these
- Several changes have been made for those developing Ramaze itself.
- A new shiny Ramaze executable, see commit
or the files in lib/ramaze/bin/ for more information.
have been removed. Less is no longer supported without Node.js, RedCloth
could not be compiled on systems running relatively new versions of GCC. On
top of that both RedCloth and Maruku weren't used as view drivers.
Ramaze::Helper::BlueForm#input_radio no longer generate a hidden field as
this would generate Rack errors (they also weren't that useful).
- General code cleanups and more documentation.
The user guide will be updated in the coming days to reflect these changes. If
you have anything to add yourself feel free to submit a pull request and we'll
take a look at it.