Sha256: a6ba4a7ed103811247d166bd0c63e1f7df9ce8df505f583bcee1a90587202afb

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

require 'fileutils'

module Headhunter
  class Runner
    ASSETS_PATH = 'public/assets'

    attr_accessor :results

    def initialize(root)
      @root             = root
      @temporary_assets = []

      precompile_assets!

      @html_validator = HtmlValidator.new
      @css_hunter     = CssHunter.new(stylesheets)

      @css_validator = CssValidator.new(stylesheets)
      @css_validator.process!
    end

    def process!(url, html)
      @html_validator.process!(url, html)
      @css_hunter.process!(url, html)
    end

    def clean_up!
      print "Headhunter is removing precompiled assets...".yellow
      remove_assets!
      puts " done!".yellow
    end

    def report
      @html_validator.prepare_results_html

      @html_validator.report
      @css_validator.report
      @css_hunter.report
    end

    private

    def precompile_assets!
      print "Headhunter is removing eventually existing assets...".yellow
      remove_assets! # Remove existing assets! This seems to be necessary to make sure that they don't exist twice, see http://stackoverflow.com/questions/20938891
      sleep 1
      puts " done!".yellow

      sleep 1

      print "Headhunter is precompiling assets...".yellow
      system 'rake assets:precompile HEADHUNTER=false &> /dev/null'
      puts " done!\n".yellow
    end

    def remove_assets!
      FileUtils.rm_r ASSETS_PATH if File.exist?(ASSETS_PATH)
    end

    def stylesheets
      Dir["#{ASSETS_PATH}/*.css"]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
headhunter-0.1.4 lib/headhunter/runner.rb