Module: Lotus::View
- Includes:
- Utils::ClassAttribute
- Defined in:
- lib/lotus/view.rb,
lib/lotus/view/dsl.rb,
lib/lotus/view/errors.rb,
lib/lotus/view/escape.rb,
lib/lotus/view/version.rb,
lib/lotus/view/template.rb,
lib/lotus/view/rendering.rb,
lib/lotus/view/inheritable.rb,
lib/lotus/view/configuration.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/template_name.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, Escape, Inheritable, Rendering Classes: Configuration, Error, MissingFormatError, MissingTemplateError, MissingTemplateLayoutError, Template
Constant Summary collapse
- VERSION =
Defines the version
'0.5.0'.freeze
Class Method Summary collapse
-
.configure(&blk) ⇒ Object
Configure the framework.
-
.dupe ⇒ Module
private
Duplicate Lotus::View in order to create a new separated instance of the framework.
-
.duplicate(mod, views = 'Views', &blk) ⇒ Module
Duplicate the framework and generate modules for the target application.
-
.included(base) ⇒ Object
private
Override Ruby’s hook for modules.
-
.load! ⇒ Object
private
Load the framework.
Class Method Details
.configure(&blk) ⇒ Object
Configure the framework. It yields the given block in the context of the configuration
42 43 44 |
# File 'lib/lotus/view.rb', line 42 def self.configure(&blk) configuration.instance_eval(&blk) end |
.dupe ⇒ Module
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.
Duplicate Lotus::View in order to create a new separated instance of the framework.
The new instance of the framework will be completely decoupled from the original. It will inherit the configuration, but all the changes that happen after the duplication, won’t be reflected on the other copies.
91 92 93 94 95 |
# File 'lib/lotus/view.rb', line 91 def self.dupe dup.tap do |duplicated| duplicated.configuration = configuration.duplicate end end |
.duplicate(mod, views = 'Views', &blk) ⇒ Module
Duplicate the framework and generate modules for the target application
@since 0.2.0
module MyApp::Views::Dashboard
class Index
include MyApp::View
end
end
200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/lotus/view.rb', line 200 def self.duplicate(mod, views = 'Views', &blk) dupe.tap do |duplicated| mod.module_eval %{ module #{ views }; end } if views mod.module_eval %{ Layout = Lotus::Layout.dup Presenter = Lotus::Presenter.dup } duplicated.configure do namespace [mod, views].compact.join '::' end duplicated.configure(&blk) if block_given? end end |
.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.
Override Ruby’s hook for modules. It includes basic Lotus::View modules to the given Class. It sets a copy of the framework configuration
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/lotus/view.rb', line 237 def self.included(base) conf = self.configuration conf.add_view(base) base.class_eval do extend Inheritable extend Dsl extend Rendering extend Escape include Utils::ClassAttribute class_attribute :configuration self.configuration = conf.duplicate end conf.copy!(base) end |
.load! ⇒ 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.
Load the framework
260 261 262 |
# File 'lib/lotus/view.rb', line 260 def self.load! configuration.load! end |