class HTML::Proofer
def self.create_nokogiri(path)
def self.create_nokogiri(path) Nokogiri::HTML(File.read(path)) end
def get_checks
def get_checks HTML::Proofer::Checks::Check.subclasses end
def initialize(src, opts={})
def initialize(src, opts={}) @srcDir = src @options = {:ext => ".html"}.merge(opts) @failedTests = [] end
def print_issues(klass, issues)
def print_issues(klass, issues) return if issues.empty? @failedTests.push klass issues.each do |issue| $stderr.puts issue + "\n\n" end end
def run
def run get_checks.each do |klass| issues = [] puts "Running #{klass.name.split(/:/).pop()} check... \n\n" Find.find(@srcDir) do |path| if File.extname(path) == @options[:ext] html = HTML::Proofer.create_nokogiri(path) check = klass.new(path, html, @options) check.run self.print_issues(klass, check.issues) end end end if !@failedTests.empty? raise "Failing tests for: {@failedTests}" end end