View layer for Hanami
- [Luca Guidi] Remove deprecated
Hanami::View::Rendering::LayoutScope#content
- [Luca Guidi] Official support for Ruby: MRI 2.4
- [Vladimir Dralo] Allow
View#initialize
to splat keyword arguments
- [Luca Guidi] Ensure
Rendering::NullLocal
to work with HAML templates
- [Luca Guidi] Official support for Ruby: MRI 2.3+ and JRuby 9.1.5.0+
- [Luca Guidi] Introduced
#local
for views, layouts and templates. It allows to safely access locals without raising errors in case the referenced local is missing.
- [nessur] Find the correct partial in case of deeply nested templates.
- [Marcello Rocha] Ensure
Hanami::Presenter
to respect method visibility of wrapped object. - [Luca Guidi] Ensure to use new registry when loading the framework
– [Luca Guidi] Drop support for Ruby 2.0 and 2.1. Official support for JRuby 9.0.5.0+.
– [Luca Guidi] Deprecate #content
in favor of #local
.
- [Steve Hook] Preload partial templates in order to boost performances for partials rendering (2x faster)
- [Luca Guidi] Disable Slim autoescape to use
Hanami::View
's feature
- [Luca Guidi] Renamed the project
- [Luca Guidi] Added
Lotus::View::Configuration#default_encoding
to set the encoding for templates
- [Luca Guidi] Let exceptions to be raised as they occur in rendering context. This fixes misleading backtraces for exceptions.
- [Martin Rubi] Raise a
Lotus::View::MissingTemplateError
when rendering a missing partial from a template - [Luca Guidi] Fix for
template.erb is not valid US-ASCII (Encoding::InvalidByteSequenceError)
when system encoding is not set
- [Liam Dawson] Introduced
Lotus::View::Error
and let all the framework exceptions to inherit from it.
- [Luca Guidi] Autoescape for layout helpers.
- [Farrel Lifson] Force partial finder to be explicit when to templates have the same name.
- [Tom Kadwill] Ensure views to use methods defined by the associated layout.
- [Luca Guidi] Introduced
#content
to render optional contents in a different context (eg. a view sets a page specific javascript in the application template footer).
- [Luca Guidi] Autoescape concrete and virtual methods from presenters
- [Luca Guidi] Autoescape concrete and virtual methods from views
- [Tom Kadwill] Improve error message for undefined method in view
- [Luca Guidi] Ensure that layouts will include modules from
Configuration#prepare
- [Trung Lê] When duplicate the framework, also duplicate
Presenter
- [Benny Klotz] Introduced
Scope#class
,#inspect
,LayoutScope#class
and#inspect
- [Alfonso Uceda Pompa & Trung Lê] Introduced
Configuration#prepare
- [Luca Guidi] Implemented "respond to" logic for
Lotus::View::Scope
(respond_to?
andrespond_to_missing?
) - [Luca Guidi] Implemented "respond to" logic for
Lotus::Layout
(respond_to?
andrespond_to_missing?
) - [Jeremy Stephens] Allow view concrete methods that accept a block to be invoked from templates
- [Peter Suschlik] Implemented "respond to" logic for
Lotus::Presenter
(respond_to?
andrespond_to_missing?
) - [Luca Guidi] Official support for Ruby 2.2
- [Alfonso Uceda Pompa] Raise an exception when a layout doesn't have an associated template
- [Luca Guidi] Ensure that concrete methods in layouts are available in templates
- [Luca Guidi] Ensure to associate the right layout to a view in case fo duplicated framework
- [Luca Guidi] Safe override of Ruby's top level methods in Scope. (Eg. use
select
from a view, not from::Kernel
)
- [Luca Guidi] Introduced
Configuration#duplicate
- [Luca Guidi] Introduced
Configuration#layout
to define the layout that all the views will use - [Luca Guidi] Introduced
Configuration#load_paths
to define several sources where to lookup for templates - [Luca Guidi] Introduced
Configuration#root
to define the root path where to find templates - [Luca Guidi] Introduced
Lotus::View::Configuration
- [Grant Ammons] Allow view concrete methods with arity > 0 to be invoked from templates
- [Luca Guidi] Official support for Ruby 2.1
- [Luca Guidi]
Rendering::TemplatesFinder
now look recursively for templates, starting from the root. - [Luca Guidi] Removed
View.layout=
- [Luca Guidi] Removed
View.root=
- [Luca Guidi] Ensure outermost locals to not shadow innermost inside templates/partials
- [Luca Guidi] Allow custom rendering policy via
Action#render
override. This bypasses the template lookup and rendering. - [Luca Guidi] Introduced
Lotus::Presenter
- [Luca Guidi] Introduced templates rendering from templates and layouts
- [Luca Guidi] Introduced partials rendering from templates and layouts
- [Luca Guidi] Introduced layouts support
- [Luca Guidi] Introduced
Lotus::View.load!
as entry point to load views and templates - [Luca Guidi] Allow to setup template name via
View.template
- [Luca Guidi] Rendering context also considers locals passed to the constructor
- [Luca Guidi] Introduced
View.format
as DSL to declare which format to handle - [Luca Guidi] Introduced view subclasses as way to handle different formats (mime types)
- [Luca Guidi] Introduced multiple templates per each View
- [Luca Guidi] Implemented basic rendering with templates
- [Luca Guidi] Official support for Ruby 2.0