lib/html/proofer.rb
require 'nokogiri' require 'html/proofer/checks' module HTML class Proofer def initialize(src, opts={}) @srcDir = src @options = {:ext => ".html"}.merge(opts) end 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(check.issues) end end end end def self.create_nokogiri(path) Nokogiri::HTML(File.read(path)) end def get_checks HTML::Proofer::Checks::Check.subclasses end def print_issues(issues) return if issues.empty? issues.each do |issue| $stderr.puts issue + "\n\n" end end end end