Class: Dommy::SVGElement
- Includes:
- Internal::ReflectedAttributes
- Defined in:
- lib/dommy/svg_elements.rb
Overview
Base for specialized SVGElement subclasses. Mirrors HTMLElement’s role for HTML: a thin layer over Element that adds reflection helpers (via Internal::ReflectedAttributes) and a few attribute accessors that apply to every SVG element.
Ruby property names use snake_case; the JS bridge (‘js_get` / `js_set`) accepts the camelCase / spec name. The underlying HTML attribute name is whatever the SVG spec defines (often camelCase: `viewBox`, `gradientUnits`, `preserveAspectRatio`), passed verbatim to `reflected_string`.
Direct Known Subclasses
SVGAElement, SVGAnimationElement, SVGCircleElement, SVGClipPathElement, SVGComponentTransferFunctionElement, SVGDefsElement, SVGDescElement, SVGEllipseElement, SVGFEDistantLightElement, SVGFEMergeNodeElement, SVGFEPointLightElement, SVGFESpotLightElement, SVGFilterElement, SVGFilterPrimitiveElement, SVGForeignObjectElement, SVGGElement, SVGImageElement, SVGLineElement, SVGLinearGradientElement, SVGMPathElement, SVGMarkerElement, SVGMaskElement, SVGMetadataElement, SVGPathElement, SVGPatternElement, SVGPolygonElement, SVGPolylineElement, SVGRadialGradientElement, SVGRectElement, SVGSVGElement, SVGStopElement, SVGSwitchElement, SVGSymbolElement, SVGTSpanElement, SVGTextElement, SVGTextPathElement, SVGTitleElement, SVGUseElement, SVGViewElement
Constant Summary
Constants inherited from Element
Element::ATTRIBUTE_NODE, Element::CDATA_SECTION_NODE, Element::COMMENT_NODE, Element::DOCUMENT_FRAGMENT_NODE, Element::DOCUMENT_NODE, Element::DOCUMENT_POSITION_CONTAINED_BY, Element::DOCUMENT_POSITION_CONTAINS, Element::DOCUMENT_POSITION_DISCONNECTED, Element::DOCUMENT_POSITION_FOLLOWING, Element::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Element::DOCUMENT_POSITION_PRECEDING, Element::DOCUMENT_TYPE_NODE, Element::ELEMENT_NODE, Element::PROCESSING_INSTRUCTION_NODE, Element::SHADOW_HOST_TAGS, Element::TEXT_NODE
Constants included from Node
Node::ATTRIBUTE_NODE, Node::CDATA_SECTION_NODE, Node::COMMENT_NODE, Node::DOCUMENT_FRAGMENT_NODE, Node::DOCUMENT_NODE, Node::DOCUMENT_POSITION_CONTAINED_BY, Node::DOCUMENT_POSITION_CONTAINS, Node::DOCUMENT_POSITION_DISCONNECTED, Node::DOCUMENT_POSITION_FOLLOWING, Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Node::DOCUMENT_POSITION_PRECEDING, Node::DOCUMENT_TYPE_NODE, Node::ELEMENT_NODE, Node::PROCESSING_INSTRUCTION_NODE, Node::TEXT_NODE
Instance Attribute Summary
Attributes inherited from Element
Instance Method Summary collapse
- #__js_get__(key) ⇒ Object
- #__js_set__(key, value) ⇒ Object
-
#case_sensitive_attribute_names? ⇒ Boolean
SVG attribute names are case-sensitive (‘viewBox` ≠ `viewbox`).
- #class_name ⇒ Object
- #class_name=(value) ⇒ Object
-
#id ⇒ Object
Common SVG attributes shared across all elements.
- #id=(value) ⇒ Object
- #tabindex ⇒ Object
- #tabindex=(value) ⇒ Object
Methods inherited from Element
#[], #[]=, #__js_call__, #__scroll_log__, #__shadow_root__, #after, #anchor_href, #animate, #append, #append_child, #attach_shadow, #attributes, #base_uri, #before, #blur, #child_element_count, #child_nodes, #children, #class_list, #click, #clone_node, #closest, #compare_document_position, #contains?, #dataset, #equal_node?, #first_child, #first_element_child, #focus, #get_animations, #get_attribute, #get_attribute_node, #get_elements_by_class_name, #get_elements_by_tag_name, #get_html, #get_inner_html, #has_attribute?, #has_attributes?, #has_child_nodes?, #initialize, #inner_html, #inner_html=, #insert_adjacent_element, #insert_adjacent_html, #insert_adjacent_text, #insert_before, #is_connected?, #last_child, #last_element_child, #live_child_nodes, #local_name, #matches?, #namespace_uri, #next_element_sibling, #next_sibling, #normalize, #on, #outer_html, #outer_html=, #owner_document, #parent_element, #parent_node, #prepend, #previous_element_sibling, #previous_sibling, #query_selector, #query_selector_all, #reflected_attr_name, #remove, #remove_attribute, #remove_attribute_node, #remove_child, #replace_child, #replace_children, #replace_with_nodes, #role, #role=, #root_node, #same_node?, #set_attribute, #set_attribute_node, #shadow_root, #slot, #slot=, #style, #tag_name, #text_content, #text_content=, #to_s, #toggle_attribute
Methods included from EventTarget
#__deliver_event__, #add_event_listener, #dispatch_event, #invoke_listener, #remove_event_listener
Constructor Details
This class inherits a constructor from Dommy::Element
Instance Method Details
#__js_get__(key) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/dommy/svg_elements.rb', line 50 def __js_get__(key) case key when "id" id when "className" class_name when "tabIndex" tabindex else super end end |
#__js_set__(key, value) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/dommy/svg_elements.rb', line 63 def __js_set__(key, value) case key when "id" self.id = value when "className" self.class_name = value when "tabIndex" self.tabindex = value else super end end |
#case_sensitive_attribute_names? ⇒ Boolean
SVG attribute names are case-sensitive (‘viewBox` ≠ `viewbox`). Element’s get/set/has/remove_attribute consult this flag to decide whether to lowercase the attribute name.
20 21 22 |
# File 'lib/dommy/svg_elements.rb', line 20 def case_sensitive_attribute_names? true end |
#class_name ⇒ Object
34 35 36 |
# File 'lib/dommy/svg_elements.rb', line 34 def class_name reflected_string("class") end |
#class_name=(value) ⇒ Object
38 39 40 |
# File 'lib/dommy/svg_elements.rb', line 38 def class_name=(value) set_reflected_string("class", value) end |
#id ⇒ Object
Common SVG attributes shared across all elements.
26 27 28 |
# File 'lib/dommy/svg_elements.rb', line 26 def id reflected_string("id") end |
#id=(value) ⇒ Object
30 31 32 |
# File 'lib/dommy/svg_elements.rb', line 30 def id=(value) set_reflected_string("id", value) end |
#tabindex ⇒ Object
42 43 44 |
# File 'lib/dommy/svg_elements.rb', line 42 def tabindex reflected_string("tabindex") end |
#tabindex=(value) ⇒ Object
46 47 48 |
# File 'lib/dommy/svg_elements.rb', line 46 def tabindex=(value) set_reflected_string("tabindex", value) end |