Class: Emjay::Components::MjHtmlAttributes
- Inherits:
-
HeadComponent
- Object
- Emjay::Component
- HeadComponent
- Emjay::Components::MjHtmlAttributes
- Defined in:
- lib/emjay/components/head/mj_html_attributes.rb
Instance Attribute Summary
Attributes inherited from Emjay::Component
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from HeadComponent
Methods inherited from Emjay::Component
allowed_attributes, default_attributes, ending_tag?, #get_attribute, #get_child_context, #get_content, #initialize, raw_element?
Constructor Details
This class inherits a constructor from Emjay::Component
Class Method Details
.component_name ⇒ Object
9 10 11 |
# File 'lib/emjay/components/head/mj_html_attributes.rb', line 9 def self.component_name "mj-html-attributes" end |
Instance Method Details
#handler ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/emjay/components/head/mj_html_attributes.rb', line 13 def handler add = @context[:add] children = @props[:children] || [] children.select { |c| c[:tag_name] == "mj-selector" }.each do |selector| path = (selector[:attributes] || {})["path"] custom = (selector[:children] || []) .select { |c| c[:tag_name] == "mj-html-attribute" && (c[:attributes] || {})["name"] } .each_with_object({}) { |c, acc| acc[c[:attributes]["name"]] = c[:content] || "" } add.call(:html_attributes, path, custom) end end |