class Roadie::AssetScanner

except for having the attribute itself removed.
Any style declaration tagged with data-roadie-ignore will be ignored,
provider.
DOM tree. Referenced styles will be found using the provided asset
The asset scanner’s main usage is finding and/or extracting styles from a
@api private

def clean_css(css)

def clean_css(css)
  css.gsub(CLEANING_MATCHER, "")
end

def extract_css

Returns:
  • (Enumerable) - every extracted stylesheet

Other tags:
    See: #find_css -
def extract_css
  @dom.css(STYLE_ELEMENT_QUERY).map { |element|
    stylesheet = read_stylesheet(element)
    element.remove if stylesheet
    stylesheet
  }.compact
end

def find_css

Returns:
  • (Enumerable) - every found stylesheet

Other tags:
    See: #extract_css -
def find_css
  @dom.css(STYLE_ELEMENT_QUERY).map { |element| read_stylesheet(element) }.compact
end

def initialize(dom, normal_asset_provider, external_asset_provider)

Parameters:
  • external_asset_provider (#find_stylesheet!) --
  • normal_asset_provider (#find_stylesheet!) --
  • dom (Nokogiri::HTML::Document) --
def initialize(dom, normal_asset_provider, external_asset_provider)
  @dom = dom
  @normal_asset_provider = normal_asset_provider
  @external_asset_provider = external_asset_provider
end

def read_link_element(element)

def read_link_element(element)
  if Utils.path_is_absolute?(element["href"])
    external_asset_provider.find_stylesheet! element["href"] if should_find_external?
  else
    normal_asset_provider.find_stylesheet! element["href"]
  end
end

def read_style_element(element)

def read_style_element(element)
  Stylesheet.new "(inline)", clean_css(element.text.strip)
end

def read_stylesheet(element)

def read_stylesheet(element)
  if element.name == "style"
    read_style_element element
  elsif element.name == "link" && element["media"] != "print" && element["href"]
    read_link_element element
  end
end

def should_find_external?

def should_find_external?
  return false unless external_asset_provider
  # If external_asset_provider is empty list; don't use it.
  return false if external_asset_provider.respond_to?(:empty?) && external_asset_provider.empty?
  true
end