Roda v1.2.0 Release Notes
Release Date: 2014-12-17 // over 9 years ago-
0️⃣ Don't override explicit nil :default_encoding template option in the render plugin (jeremyevans)
Add remaining_path and matched_path request methods (jeremyevans)
Add slash_path_emty plugin, for considering a path of "/" as empty when doing a terminal match (jeremyevans)
Remove def_verb_method request class method (jeremyevans)
Support :add_script_name, :name, :url, and :url_only options when creating named paths in the path plugin (jeremyevans)
➕ Add match_affix plugin, for overriding default prefix/suffix used in match patterns (jeremyevans)
➕ Add empty_root plugin, for making root matcher also match empty string (jeremyevans)
➕ Add roda_class instance methods to RodaRequest and RodaResponse, to DRY up plugin code (jeremyevans)
➕ Add sinatra_helpers plugin, porting Sinatra::Helpers methods not covered by other plugins (jeremyevans)
0️⃣ Don't set the default headers until the response is finished (jeremyevans)
Add RodaRequest#default_redirect_status, so plugins can override the default status used for redirects (jeremyevans)
➕ Add drop_body plugin, for automatically dropping body and Content-{Length,Type} headers based on response status (jeremyevans)
➕ Add clear_middleware! class method, for clearing the current middleware (jeremyevans)
➕ Add inherit_middleware class accessor, allowing users to turn off middleware inheritance (jeremyevans)
➕ Add multi_run plugin, for dispatching to multiple rack applications based on the request path prefix (jeremyevans)
➕ Add environments plugin, for handling development/test/production environments (jeremyevans)
0️⃣ Do not cache templates by default if RACK_ENV is development (jeremyevans)
➕ Add delay_build plugin, to delay building the rack app until Roda.app is called (jeremyevans)
Add :user_agent hash matcher to the header_matchers plugin (jeremyevans)
🛠 Fix caching of templates in the render plugin when :opts or :template_class is used (jeremyevans)
0️⃣ Require loading the render plugin again if you want to change the default layout (jeremyevans)
Pass :css_opts and :js_opts as template options (via :opts) instead of render options when rendering (jeremyevans)
Only pass :opts hash to template class during rendering, instead of all render/view options (jeremyevans)
👌 Support :template_class option in the render plugin for overriding template class to use (jeremyevans)
Automatically dup unfrozen Array/Hash opts values when subclassing (jeremyevans)
➕ Add named_templates plugin, for creating inline templates by name, instead of storing them in the file system (jeremyevans)
👌 Support :template option in for render/view to specify template to use, instead of requiring separate argument (jeremyevans)
Add class_level_routing plugin, for a DSL similar to Sinatra (jeremyevans)
0️⃣ Make RodaRequest.consume_pattern not capture pattern by default (jeremyevans)
Add static_path_info plugin, making Roda not modify PATH_INFO or SCRIPT_NAME during routing (jeremyevans)
🐎 Use local/instance variable lookups instead of method calls to improve performance (jeremyevans)
➕ Add RodaRequest#session, and have #session delegate to that (jeremyevans)
➕ Add delegate plugin, for easily creating methods that delegate to request or response (jeremyevans)
➕ Add mailer plugin, allowing use of a routing tree for email instead of web responses (jeremyevans)