Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # #Nanoc validation task
- #
- # To use this validation task you need the w3c_validators gem
- # gem install w3c_validators
- # and run rake validate on your project root
- #
- require 'yaml'
- require 'w3c_validators'
- include W3CValidators
- desc "W3C validation of the output folder"
- task :validate do
- # perform a setup of all our variables
- setup
- validate '.html'
- validate '.css'
- end
- private
- # Colorize the output :)
- def colorize(text, color_code); "#{color_code}#{text}\e[0m"; end
- def red(text); colorize(text, "\e[31m"); end
- def green(text); colorize(text, "\e[32m"); end
- # Reads the yaml with the configuration of the project to get always the correct
- # output_dir and initializes the validator
- def setup
- @config = YAML.load_file("config.yaml")
- end
- # Method to validate calling to the w3c_validators methods
- def validate ext
- @validator = (ext == ".css" ? CSSValidator.new : MarkupValidator.new )
- files(@config['output_dir'], true, ext).each do |file|
- results = @validator.validate_file(file)
- if results.errors.length > 0
- results.errors.each do |err|
- puts "\t #{file} => #{red(err)}"
- end
- else
- puts "\t #{file} => #{green('Valid!')}"
- end
- end
- end
- # From nanoc
- # # Returns a list of all files in +dir+, ignoring any unwanted files (files
- # that end with '~', '.orig', '.rej' or '.bak').
- #
- # +recursively+:: When +true+, finds files in +dir+ as well as its
- # subdirectories; when +false+, only searches +dir+
- # itself.
- def files(dir, recursively, ext = '')
- glob = File.join([dir] + (recursively ? [ "**", "*#{ext}" ] : [ "*#{ext}" ]))
- Dir[glob].reject { |f| File.directory?(f) or f =~ /(~|\.orig|\.rej|\.bak)$/ }
- end
Add Comment
Please, Sign In to add comment