Class: ValidateWebsite::Utils
- Inherits:
-
Object
- Object
- ValidateWebsite::Utils
- Defined in:
- lib/validate_website/utils.rb
Overview
Utils class for CSS helpers
Class Method Summary collapse
-
.extract_urls_from_css(page) ⇒ Set
Extract urls from CSS page.
-
.extract_urls_from_nodes(nodes, page, memo = Set[]) ⇒ Set
Extract urls from Crass nodes.
-
.urls_to_absolute(node, page) ⇒ Set
Return urls as absolute from Crass nodes.
Class Method Details
.extract_urls_from_css(page) ⇒ Set
Extract urls from CSS page
10 11 12 13 14 15 |
# File 'lib/validate_website/utils.rb', line 10 def self.extract_urls_from_css(page) return Set[] unless page return Set[] if page.body.nil? nodes = Crass::Parser.parse_stylesheet(page.body) extract_urls_from_nodes nodes, page end |
.extract_urls_from_nodes(nodes, page, memo = Set[]) ⇒ Set
Extract urls from Crass nodes
38 39 40 41 42 43 44 45 46 |
# File 'lib/validate_website/utils.rb', line 38 def self.extract_urls_from_nodes(nodes, page, memo = Set[]) nodes.each_with_object(memo) do |node, result| result.merge urls_to_absolute(node, page) if node[:children] extract_urls_from_nodes node.delete(:children), page, result end result end end |
.urls_to_absolute(node, page) ⇒ Set
Return urls as absolute from Crass nodes
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/validate_website/utils.rb', line 22 def self.urls_to_absolute(node, page) if node[:node] == :function && node[:name] == 'url' || node[:node] == :url Array(node[:value]).map do |v| url = v.is_a?(String) ? v : v[:value] page.to_absolute(url).to_s end else Set.new end end |