Roda v1.0.0 Release Notes

Release Date: 2014-08-19 // over 9 years ago
    • Don't have :extension hash matcher force a terminal match (jeremyevans)

    • โž• Add :content option to view method in render plugin to use given content instead of rendering a template (jeremyevans)

    • โž• Add :escape option to render plugin for using erb templates where <%= %> escapes and <%== %> does not (jeremyevans)

    • ๐Ÿ”Œ Make multi_route plugin route("route_name") method a request method instead of an instance method (jeremyevans)

    • Add r.multi_route method to multi_route plugin, for dispatching to named route based on first segment in path (jeremyevans)

    • ๐Ÿ‘ Allow non-GET requests to use r.redirect with no argument, redirecting to current path (jeremyevans)

    • โž• Add head plugin, for handling HEAD requests like GET requests with an empty body (jeremyevans)

    • โšก๏ธ Optimize consuming patterns by using a positive lookahead assertion (jeremyevans)

    • โž• Add not_allowed plugin, for automatically returning 405 Method Not Allowed responses (jeremyevans)

    • โšก๏ธ Optimize match blocks with no arguments (jeremyevans)

    • โž• Add content_for plugin, for storing content in one template and retrieving it in another (jeremyevans)

    • โž• Add render_each plugin, for rendering a template for each value in an enumerable (jeremyevans)

    • โž• Add backtracking_array plugin, allowing array matchers to backtrack if later matchers do not match (jeremyevans)

    • โž• Add :all hash matcher, allowing array matchers to include conditions where you want to match multiple conditions (jeremyevans)

    • โž• Add json plugin, allowing match blocks to return arrays/hashes, returning JSON (jeremyevans)

    • โž• Add view_subdirs plugin, for setting a subdirectory for views on a per-request basis (jeremyevans)

    • ๐Ÿ‘ Allow default halt method to take no arguments, and use the current response (jeremyevans)

    • โž• Add symbol_views plugin, allowing match blocks to return a template name symbol (jeremyevans)

    • Add per_thread_caching plugin, for using separate caches per thread instead of shared thread-safe caches (jeremyevans)

    • โž• Add hash_matcher class method, for easily creating hash match methods (jeremyevans)

    • โž• Add symbol_matchers plugin, for using symbol-specific matching regexps (jeremyevans)

    • โž• Add csrf plugin for csrf protection using rack_csrf (jeremyevans)

    • โšก๏ธ Optimize r.is, r.get, r.post and similar methods by reducing the number of Array objects created (jeremyevans)

    • ๐Ÿ‘Œ Support RequestClassMethods and ResponseClassMethods in plugins (jeremyevans)

    • โž• Add Roda::RodaCache for a thread safe cache, currently used for match patterns, templates, and plugins (jeremyevans)

    • โšก๏ธ Optimize matching by caching consume regexp for strings, regexp, symbol, and :extension matchers (jeremyevans)

    • โž• Add r.root for GET / requests, for easier to read version of r.get "" (jeremyevans)

    • โšก๏ธ Optimize r.is terminal matcher, remove :term hash matcher (jeremyevans)

    • ๐Ÿ”Œ Make flash plugin no longer depend on sinatra-flash (jeremyevans)

    • ๐Ÿšš Move version file to roda/version so it can be required separately without loading dependencies (jeremyevans)