Class: Cardio::Mod::ModuleTemplate
- Inherits:
-
Object
- Object
- Cardio::Mod::ModuleTemplate
- Defined in:
- lib/cardio/mod/module_template.rb
Overview
ModuleTemplate is an abstract class to build ruby modules out of deckos dsl for sets and set patterns. Loader::SetTemplate and Loader::SetPatternTemplate inherit from it and adapt the template to their needs.
Direct Known Subclasses
Instance Method Summary collapse
-
#build ⇒ Object
Evaluates the module in the top level namespace.
-
#initialize(modules, content_path, strategy) ⇒ ModuleTemplate
constructor
A new instance of ModuleTemplate.
- #processed_content ⇒ Object
-
#simple_load? ⇒ Boolean
Just run the code of the source.
-
#to_s ⇒ String
The ruby code to build the modal.
Constructor Details
#initialize(modules, content_path, strategy) ⇒ ModuleTemplate
Returns a new instance of ModuleTemplate.
8 9 10 11 12 13 14 15 |
# File 'lib/cardio/mod/module_template.rb', line 8 def initialize modules, content_path, strategy modules = Array.wrap modules @pattern = modules.shift @modules = modules @content = ::File.read content_path @content_path = content_path @strategy = strategy end |
Instance Method Details
#build ⇒ Object
Evaluates the module in the top level namespace.
18 19 20 |
# File 'lib/cardio/mod/module_template.rb', line 18 def build eval to_s, TOPLEVEL_BINDING, @content_path, offset end |
#processed_content ⇒ Object
27 28 29 30 |
# File 'lib/cardio/mod/module_template.rb', line 27 def processed_content capture_module_comment if @strategy.clean_comments? module_content end |
#simple_load? ⇒ Boolean
Just run the code of the source. Don’t use the path to the file as module hierarchy.
34 35 36 |
# File 'lib/cardio/mod/module_template.rb', line 34 def simple_load? @content =~ /\A#!\s?simple load/ end |
#to_s ⇒ String
Returns the ruby code to build the modal.
23 24 25 |
# File 'lib/cardio/mod/module_template.rb', line 23 def to_s simple_load? ? @content : processed_content end |