Sha256: 1162c2b5d3f3b07d3762f181ad1d5632557fcaa1378c32b78e0a097fa58e1358

Contents?: true

Size: 989 Bytes

Versions: 1

Compression:

Stored size: 989 Bytes

Contents

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(klass, 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(klass, issues)
      return if issues.empty?
      raise "#{klass} has failing tests"
      issues.each do |issue|
        $stderr.puts issue + "\n\n"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
html-proofer-0.0.6 lib/html/proofer.rb