Class: HTMLProofer::Element
- Inherits:
-
Object
- Object
- HTMLProofer::Element
show all
- Includes:
- Utils
- Defined in:
- lib/html_proofer/element.rb
Overview
Represents the element currently being processed
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Utils
#blank?, #create_nokogiri, #pluralize
Constructor Details
#initialize(runner, node, base_url: nil) ⇒ Element
Returns a new instance of Element.
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/html_proofer/element.rb', line 12
def initialize(runner, node, base_url: nil)
@runner = runner
@node = node
@base_url = base_url
@url = Attribute::Url.new(runner, link_attribute, base_url: base_url)
@line = node.line
@content = node.content
end
|
Instance Attribute Details
#base_url ⇒ Object
Returns the value of attribute base_url.
10
11
12
|
# File 'lib/html_proofer/element.rb', line 10
def base_url
@base_url
end
|
#content ⇒ Object
Returns the value of attribute content.
10
11
12
|
# File 'lib/html_proofer/element.rb', line 10
def content
@content
end
|
#line ⇒ Object
Returns the value of attribute line.
10
11
12
|
# File 'lib/html_proofer/element.rb', line 10
def line
@line
end
|
#node ⇒ Object
Returns the value of attribute node.
10
11
12
|
# File 'lib/html_proofer/element.rb', line 10
def node
@node
end
|
#url ⇒ Object
Returns the value of attribute url.
10
11
12
|
# File 'lib/html_proofer/element.rb', line 10
def url
@url
end
|
Instance Method Details
#a_tag? ⇒ Boolean
71
72
73
|
# File 'lib/html_proofer/element.rb', line 71
def a_tag?
@node.name == "a"
end
|
#aria_hidden? ⇒ Boolean
79
80
81
|
# File 'lib/html_proofer/element.rb', line 79
def aria_hidden?
@node.attributes["aria-hidden"]&.value == "true"
end
|
#href ⇒ Object
64
65
66
67
68
69
|
# File 'lib/html_proofer/element.rb', line 64
def href
return nil if !a_tag? && !link_tag?
return swap_attributes("href") if attribute_swapped?
@node["href"]
end
|
#ignore? ⇒ Boolean
109
110
111
112
113
114
115
116
|
# File 'lib/html_proofer/element.rb', line 109
def ignore?
return true if @node.attributes["data-proofer-ignore"]
return true if ancestors_ignorable?
return true if url&.ignore?
false
end
|
#img_tag? ⇒ Boolean
45
46
47
|
# File 'lib/html_proofer/element.rb', line 45
def img_tag?
@node.name == "img"
end
|
#link_attribute ⇒ Object
23
24
25
|
# File 'lib/html_proofer/element.rb', line 23
def link_attribute
meta_content || src || srcset || href
end
|
#link_tag? ⇒ Boolean
75
76
77
|
# File 'lib/html_proofer/element.rb', line 75
def link_tag?
@node.name == "link"
end
|
#meta_content ⇒ Object
27
28
29
30
31
32
|
# File 'lib/html_proofer/element.rb', line 27
def meta_content
return nil unless meta_tag?
return swap_attributes("content") if attribute_swapped?
@node["content"]
end
|
34
35
36
|
# File 'lib/html_proofer/element.rb', line 34
def meta_tag?
@node.name == "meta"
end
|
#multiple_sizes? ⇒ Boolean
93
94
95
96
97
98
99
|
# File 'lib/html_proofer/element.rb', line 93
def multiple_sizes?
return false if blank?(srcsets)
srcsets.any? do |srcset|
!blank?(srcset) && srcset.split(" ").size > 1
end
end
|
#multiple_srcsets? ⇒ Boolean
83
84
85
|
# File 'lib/html_proofer/element.rb', line 83
def multiple_srcsets?
!blank?(srcset) && srcset.split(",").size > 1
end
|
#script_tag? ⇒ Boolean
49
50
51
|
# File 'lib/html_proofer/element.rb', line 49
def script_tag?
@node.name == "script"
end
|
#source_tag? ⇒ Boolean
60
61
62
|
# File 'lib/html_proofer/element.rb', line 60
def source_tag?
@node.name == "source"
end
|
#src ⇒ Object
38
39
40
41
42
43
|
# File 'lib/html_proofer/element.rb', line 38
def src
return nil if !img_tag? && !script_tag? && !source_tag?
return swap_attributes("src") if attribute_swapped?
@node["src"]
end
|
#srcset ⇒ Object
53
54
55
56
57
58
|
# File 'lib/html_proofer/element.rb', line 53
def srcset
return nil if !img_tag? && !source_tag?
return swap_attributes("srcset") if attribute_swapped?
@node["srcset"]
end
|
#srcsets ⇒ Object
87
88
89
90
91
|
# File 'lib/html_proofer/element.rb', line 87
def srcsets
return nil if blank?(srcset)
srcset.split(",").map(&:strip)
end
|
#srcsets_wo_sizes ⇒ Object
101
102
103
104
105
106
107
|
# File 'lib/html_proofer/element.rb', line 101
def srcsets_wo_sizes
return nil if blank?(srcsets)
srcsets.map do |srcset|
srcset.split(" ").first
end
end
|