• Support locals as second parameter on Controller#render_response and Controller#render_with_layout mixin.
  • content_type is now a keyword argument on Controller#render_response.
  • Compatibility with hawese-payment version 0.2 or higher.


  • Puma as requirement for new projects, now dynamic routes work out-of-the-box.
  • Default controller main_controller.rb is optional.
  • Render static files magically if no action is found on controller or as a proc.
  • Automagic title for markdown and HAML files on Controller#render_with_layout.
  • Controller#absolute_view_path now is public. And accepts paths relative to current @route.path.
  • Hawese.payment_methods allows country and currency filtering.
  • Hawese now returns symbolized keys.
  • Support for GET /payments/<uuid> on Hawese.payment.
  • Debian setup on contrib/bin/.


  • Use refinements instead of monkey patches for String.
  • Controller filenames now match camelized class name. Default controller now is on main_controller.rb instead of main.rb.
  • Proc on Route#action is executed on a instance of MainController.
  • Action always infers filename by #controller. Now both #controller and #action are symbols.
  • Drop tilt-emacs_org registration given that Tilt 2.0.11 includes it by default.
  • Hawese Payment support.
  • Rack::Session::JsonFile Rack session support.
  • LeanMail.deliver allows to send emails easily.
  • Ready-to-go layout support with Controller#render_with_layout mixin.
  • Under AGPL v3 license.


  • Complete Tilt support instead of just HAML + ERB.
  • Rename Controller#render to Controller#render_response.
  • Improve control of nested templating by replacing Controller#_render with Controller#create_template.
  • Guess Content-Type header based on Tilt media types.
  • tilt-emacs_org support.
  • Controller#base_url for templates.
  • Remove App.init in favor of a non-eval initialization.
  • Default Route#static true only for GET and HEAD #methods.


  • Allow nested Controller#render, for layouts or partials.
  • Add String#camelize and String#pascalize methods.
  • Drop complex rules for guessing view paths on Controller#render.