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 Element

#[], #[]=, #__js_call__, #__shadow_root__, #after, #anchor_href, #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_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



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/dommy/html_elements.rb', line 101

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



134
135
136
137
138
139
140
141
# File 'lib/dommy/html_elements.rb', line 134

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

#downloadObject



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

def download
  reflected_string("download")
end

#download=(v) ⇒ Object



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

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.



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

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

#hostObject



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

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

#hostnameObject



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

def hostname
  uri.host || ""
end

#hreflangObject



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

def hreflang
  reflected_string("hreflang")
end

#originObject



97
98
99
# File 'lib/dommy/html_elements.rb', line 97

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

#pathnameObject



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

def pathname
  uri.path || "/"
end

#portObject



93
94
95
# File 'lib/dommy/html_elements.rb', line 93

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

#protocolObject



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

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

#relObject



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

def rel
  reflected_string("rel")
end

#rel=(v) ⇒ Object



54
55
56
# File 'lib/dommy/html_elements.rb', line 54

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

#searchObject



89
90
91
# File 'lib/dommy/html_elements.rb', line 89

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

#targetObject



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

def target
  reflected_string("target")
end

#target=(v) ⇒ Object



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

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

#typeObject



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

def type
  reflected_string("type")
end