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

Instance Method Details

#localsSet<Symbol>

list of attributes to be used when rendering

Returns:

  • (Set<Symbol>)


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

Parameters:

  • renderer (Object)

    object responsible for rendering the HTML

  • args (Hash)

    Extra options



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

Returns:

  • (Array<Sinclair::MethodDefinition>)


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

Returns:

  • (Array)


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

Returns:

  • (Set<Symbol>)


46
47
48
# File 'lib/magicka/element/class_methods.rb', line 46

def with_locals(*args)
  locals.merge(args)
end