Class: Glimmer::DSL::Web::ComponentSlotContentExpression
- Inherits:
-
Expression
- Object
- Expression
- Glimmer::DSL::Web::ComponentSlotContentExpression
- Defined in:
- lib/glimmer/dsl/web/component_slot_content_expression.rb
Instance Method Summary collapse
- #can_interpret?(parent, keyword, *args, &block) ⇒ Boolean
- #interpret(parent, keyword, *args, &block) ⇒ Object
Instance Method Details
#can_interpret?(parent, keyword, *args, &block) ⇒ Boolean
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/glimmer/dsl/web/component_slot_content_expression.rb', line 9 def can_interpret?(parent, keyword, *args, &block) component = parent.is_a?(Glimmer::Web::Component) ? parent : parent&.ancestor_component slot = keyword.to_s block_given? && !component.nil? && ( component.slot_elements.keys.include?(slot) || component.slot_elements.keys.include?(slot.to_sym) ) end |
#interpret(parent, keyword, *args, &block) ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/glimmer/dsl/web/component_slot_content_expression.rb', line 20 def interpret(parent, keyword, *args, &block) slot = keyword.to_s component = parent.is_a?(Glimmer::Web::Component) ? parent : parent.ancestor_component if slot == 'markup_root_slot' component.content(slot: slot.to_sym, &block) else slot_element = component.slot_elements[slot] || component.slot_elements[slot.to_sym] slot_element.content(&block) end end |