Class: Bemer::Builders::TemplateList
- Inherits:
-
Object
- Object
- Bemer::Builders::TemplateList
- Defined in:
- lib/bemer/builders/template_list.rb
Instance Method Summary collapse
- #block(name = '*', condition = true, **options) ⇒ Object
- #elem(name = '*', condition = true, block: '*', **options) ⇒ Object
-
#initialize(templates) ⇒ TemplateList
constructor
A new instance of TemplateList.
- #match(condition = true, block: '*', elem: '*', **options) ⇒ Object
Constructor Details
#initialize(templates) ⇒ TemplateList
Returns a new instance of TemplateList.
6 7 8 |
# File 'lib/bemer/builders/template_list.rb', line 6 def initialize(templates) @templates = templates end |
Instance Method Details
#block(name = '*', condition = true, **options) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/bemer/builders/template_list.rb', line 10 def block(name = '*', condition = true, **) params = { **, condition: condition, block: name, elem: nil } builder = Builders::Template.new(templates, params) block_given? ? yield(builder) : builder end |
#elem(name = '*', condition = true, block: '*', **options) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/bemer/builders/template_list.rb', line 18 def elem(name = '*', condition = true, block: '*', **) params = { **, condition: condition, block: block || '*', elem: name } builder = Builders::Template.new(templates, params) block_given? ? yield(builder) : builder end |
#match(condition = true, block: '*', elem: '*', **options) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/bemer/builders/template_list.rb', line 26 def match(condition = true, block: '*', elem: '*', **) entities = [] entities << { block: block } if need_block?(block, elem) entities << { block: block || '*', elem: elem } if need_element?(elem) builders = entities.map do |entity| Builders::Template.new(templates, **, condition: condition, **entity) end return yield(builders[0], builders[1]) if block_given? builders.length.odd? ? builders[0] : builders end |