Module: Lotus::View
- Defined in:
- lib/lotus/view.rb,
lib/lotus/view/dsl.rb,
lib/lotus/view/version.rb,
lib/lotus/view/template.rb,
lib/lotus/view/rendering.rb,
lib/lotus/view/inheritable.rb,
lib/lotus/view/rendering/scope.rb,
lib/lotus/view/rendering/partial.rb,
lib/lotus/view/rendering/registry.rb,
lib/lotus/view/rendering/template.rb,
lib/lotus/view/rendering/null_layout.rb,
lib/lotus/view/rendering/view_finder.rb,
lib/lotus/view/rendering/layout_scope.rb,
lib/lotus/view/rendering/layout_finder.rb,
lib/lotus/view/rendering/null_template.rb,
lib/lotus/view/rendering/partial_finder.rb,
lib/lotus/view/rendering/layout_registry.rb,
lib/lotus/view/rendering/template_finder.rb,
lib/lotus/view/rendering/templates_finder.rb
Overview
View
Defined Under Namespace
Modules: Dsl, Inheritable, Rendering Classes: MissingFormatError, MissingTemplateError, Template
Constant Summary collapse
- VERSION =
Defines the version
'0.1.0'.freeze
Class Method Summary collapse
-
.included(base) ⇒ Object
private
Register a view.
-
.layout ⇒ Class, Rendering::NullLayout
Returns the default layout to assign to the registered views.
-
.layout=(layout) ⇒ Object
Sets the default layout for all the registered views.
-
.layouts ⇒ Set
private
A set of registered layouts.
-
.load! ⇒ Object
FIXME extract a Loader class.
-
.root ⇒ Pathname
Returns the directory root where templates are located.
-
.root=(root) ⇒ Object
Set the directory root where templates are located.
- .unload! ⇒ Object
-
.views ⇒ Set
private
A set of registered views.
Class Method Details
.included(base) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Register a view
55 56 57 58 59 60 61 62 63 |
# File 'lib/lotus/view.rb', line 55 def self.included(base) base.class_eval do extend Inheritable.dup extend Dsl.dup extend Rendering.dup end views.add(base) end |
.layout ⇒ Class, Rendering::NullLayout
Returns the default layout to assign to the registered views. If not already set, it returns a Rendering::NullLayout.
139 140 141 |
# File 'lib/lotus/view.rb', line 139 def self.layout @layout ||= Rendering::NullLayout end |
.layout=(layout) ⇒ Object
Sets the default layout for all the registered views.
127 128 129 |
# File 'lib/lotus/view.rb', line 127 def self.layout=(layout) @layout = Rendering::LayoutFinder.find(layout) end |
.layouts ⇒ Set
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A set of registered layouts.
159 160 161 |
# File 'lib/lotus/view.rb', line 159 def self.layouts @layouts ||= Set.new end |
.load! ⇒ Object
FIXME extract a Loader class
164 165 166 167 168 169 170 171 172 173 174 175 176 |
# File 'lib/lotus/view.rb', line 164 def self.load! root.freeze layout.freeze views.freeze views.each do |view| view.send(:load!) end layouts.each do |layout| layout.send(:load!) end end |
.root ⇒ Pathname
Returns the directory root where templates are located. If not already set, it returns the current directory.
100 101 102 103 104 105 |
# File 'lib/lotus/view.rb', line 100 def self.root @root ||= begin self.root = '.' @root end end |
.root=(root) ⇒ Object
Set the directory root where templates are located
77 78 79 |
# File 'lib/lotus/view.rb', line 77 def self.root=(root) @root = Pathname.new(root) rescue nil end |
.unload! ⇒ Object
178 179 180 181 182 183 |
# File 'lib/lotus/view.rb', line 178 def self.unload! instance_variable_set(:@root, nil) instance_variable_set(:@layout, nil) instance_variable_set(:@views, Set.new) instance_variable_set(:@layouts, Set.new) end |
.views ⇒ Set
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
A set of registered views.
149 150 151 |
# File 'lib/lotus/view.rb', line 149 def self.views @views ||= Set.new end |