Class: Dommy::HTMLAnchorElement

Inherits:
HTMLElement show all
Defined in:
lib/dommy/html_elements.rb

Overview

‘<a>` — exposes URL-component getters/setters via the `href` attribute, plus reflected `target` / `download` / `rel` / `type`.

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

#__node__, #document

Instance Method Summary collapse

Methods inherited from HTMLElement

#case_sensitive_attribute_names?

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, #class_name, #class_name=, #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?, #id, #id=, #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



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/dommy/html_elements.rb', line 90

def __js_get__(key)
  case key
  when "target"
    target
  when "download"
    download
  when "rel"
    rel
  when "hreflang"
    hreflang
  when "type"
    type
  when "hash"
    self.hash
  when "host"
    host
  when "hostname"
    hostname
  when "pathname"
    pathname
  when "protocol"
    protocol
  when "search"
    search
  when "port"
    port
  when "origin"
    origin
  else
    super
  end
end

#__js_set__(key, value) ⇒ Object



123
124
125
126
127
128
129
130
# File 'lib/dommy/html_elements.rb', line 123

def __js_set__(key, value)
  case key
  when "target", "download", "rel", "hreflang"
    set_reflected_string(key, value)
  else
    super
  end
end

#downloadObject



31
32
33
# File 'lib/dommy/html_elements.rb', line 31

def download
  reflected_string("download")
end

#download=(v) ⇒ Object



35
36
37
# File 'lib/dommy/html_elements.rb', line 35

def download=(v)
  set_reflected_string("download", v)
end

#hashObject

URL-decomposition helpers. The anchor’s ‘href` is resolved to an absolute URL (inherited from Element#anchor_href); break it into the standard components on demand.



58
59
60
# File 'lib/dommy/html_elements.rb', line 58

def hash
  uri_part(:fragment) ? "##{uri_part(:fragment)}" : ""
end

#hostObject



62
63
64
# File 'lib/dommy/html_elements.rb', line 62

def host
  uri.host ? "#{uri.host}#{port_suffix}" : ""
end

#hostnameObject



66
67
68
# File 'lib/dommy/html_elements.rb', line 66

def hostname
  uri.host || ""
end

#hreflangObject



47
48
49
# File 'lib/dommy/html_elements.rb', line 47

def hreflang
  reflected_string("hreflang")
end

#originObject



86
87
88
# File 'lib/dommy/html_elements.rb', line 86

def origin
  uri.scheme && uri.host ? "#{uri.scheme}://#{uri.host}#{port_suffix}" : ""
end

#pathnameObject



70
71
72
# File 'lib/dommy/html_elements.rb', line 70

def pathname
  uri.path || "/"
end

#portObject



82
83
84
# File 'lib/dommy/html_elements.rb', line 82

def port
  uri.port ? uri.port.to_s : ""
end

#protocolObject



74
75
76
# File 'lib/dommy/html_elements.rb', line 74

def protocol
  uri.scheme ? "#{uri.scheme}:" : ""
end

#relObject



39
40
41
# File 'lib/dommy/html_elements.rb', line 39

def rel
  reflected_string("rel")
end

#rel=(v) ⇒ Object



43
44
45
# File 'lib/dommy/html_elements.rb', line 43

def rel=(v)
  set_reflected_string("rel", v)
end

#searchObject



78
79
80
# File 'lib/dommy/html_elements.rb', line 78

def search
  uri.query ? "?#{uri.query}" : ""
end

#targetObject



23
24
25
# File 'lib/dommy/html_elements.rb', line 23

def target
  reflected_string("target")
end

#target=(v) ⇒ Object



27
28
29
# File 'lib/dommy/html_elements.rb', line 27

def target=(v)
  set_reflected_string("target", v)
end

#typeObject



51
52
53
# File 'lib/dommy/html_elements.rb', line 51

def type
  reflected_string("type")
end