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.
-
#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
19 20 21 |
# File 'lib/magicka/element/class_methods.rb', line 19 def locals @locals ||= superclass.try(:locals)&.dup || Set.new([]) end |
#render(renderer:, **args) ⇒ Object
render template using the given prameters
12 13 14 |
# File 'lib/magicka/element/class_methods.rb', line 12 def render(renderer:, **args) new(renderer: renderer, **args).render end |
#template(template) ⇒ Array<Sinclair::MethodDefinition>
Sets template for element type
31 32 33 34 35 |
# File 'lib/magicka/element/class_methods.rb', line 31 def template(template) MethodBuilder .new(self) .add_template(template) end |
#with_attribute_locals(*args) ⇒ Array
Adds attribute and locals
56 57 58 59 |
# File 'lib/magicka/element/class_methods.rb', line 56 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
46 47 48 |
# File 'lib/magicka/element/class_methods.rb', line 46 def with_locals(*args) locals.merge(args) end |