class HTMLProofer::Check
Mostly handles issue management and collecting of external URLs.
def add_failure(description, element: nil, line: nil, status: nil, content: nil)
def add_failure(description, element: nil, line: nil, status: nil, content: nil) @failures << Failure.new( @runner.current_filename, short_name, description, line: element.nil? ? line : element.line, status: status, content: element.nil? ? content : element.content, ) end
def add_to_external_urls(url, line)
def add_to_external_urls(url, line) url_string = url.to_s @external_urls[url_string] = [] if @external_urls[url_string].nil? @external_urls[url_string] << { filename: url.filename, line: line } end
def add_to_internal_urls(url, line)
def add_to_internal_urls(url, line) url_string = url.raw_attribute @internal_urls[url_string] = [] if @internal_urls[url_string].nil? metadata = { source: url.source, filename: url.filename, line: line, base_url: base_url, found: false, } @internal_urls[url_string] << metadata end
def base_url
def base_url @base_url if defined?(@base_url) (@base_url = "") if (base = @html.at_css("base")).nil? url = base["href"]
def create_element(node)
def create_element(node) Element.new(@runner, node, base_url: base_url) end
def initialize(runner, html)
def initialize(runner, html) @runner = runner @html = remove_ignored(html) @external_urls = {} @internal_urls = {} @failures = [] end
def remove_ignored(html)
def remove_ignored(html) if html.nil? ss("code, pre, tt").each(&:unlink)
def run
def run raise NotImplementedError, "HTMLProofer::Check subclasses must implement #run" end
def short_name
def short_name self.class.name.split("::").last end
def short_name
def short_name name.split("::").last end
def subchecks(runner_options)
def subchecks(runner_options) # grab all known checks checks = ObjectSpace.each_object(Class).select do |klass| klass < self end # remove any checks not explicitly included checks.each_with_object([]) do |check, arr| next unless runner_options[:checks].include?(check.short_name) arr << check end end