Module: Magicka::Element::ClassMethods
- Included in:
- Magicka::Element
- Defined in:
- lib/magicka/element/class_methods.rb
Overview
Class methods used for metaprograming of elements
Instance Method Summary collapse
-
#locals ⇒ Set<Symbol>
list of attributes to be used when rendering.
-
#render(renderer:, **args) ⇒ Object
render template using the given prameters.
-
#template(template) ⇒ Array<Sinclair::MethodDefinition>
Sets template for element type.
-
#template_folder(folder) ⇒ Array<Sinclair::MethodDefinition>
Sets template folder for element type.
-
#with_attribute_locals(*args) ⇒ Array
Adds attribute and locals.
-
#with_locals(*args) ⇒ Set<Symbol>
Add an attribute to locals when rendereing.
Instance Method Details
#locals ⇒ Set<Symbol>
list of attributes to be used when rendering
21 22 23 |
# File 'lib/magicka/element/class_methods.rb', line 21 def locals @locals ||= superclass.try(:locals)&.dup || Set.new([]) end |
#render(renderer:, **args) ⇒ Object
render template using the given prameters
14 15 16 |
# File 'lib/magicka/element/class_methods.rb', line 14 def render(renderer:, **args) new(renderer: renderer, **args).render end |
#template(template) ⇒ Array<Sinclair::MethodDefinition>
Sets template for element type
28 29 30 31 32 |
# File 'lib/magicka/element/class_methods.rb', line 28 def template(template) MethodBuilder .new(self) .add_template(template) end |
#template_folder(folder) ⇒ Array<Sinclair::MethodDefinition>
Sets template folder for element type
37 38 39 40 41 |
# File 'lib/magicka/element/class_methods.rb', line 37 def template_folder(folder) MethodBuilder .new(self) .add_template_folder(folder) end |
#with_attribute_locals(*args) ⇒ Array
Adds attribute and locals
64 65 66 67 |
# File 'lib/magicka/element/class_methods.rb', line 64 def with_attribute_locals(*args) with_locals(*args) with_attributes(*args) end |
#with_locals(*args) ⇒ Set<Symbol>
Add an attribute to locals when rendereing
the attribute will be a call to the a method with same name
54 55 56 |
# File 'lib/magicka/element/class_methods.rb', line 54 def with_locals(*args) locals.merge(args) end |