module Buildr::CssLint

Provides the css_lint:html and css_lint:xml tasks. Require explicitly using require "buildr/css_lint".

Public Class Methods

css_lint(output_file, source_paths, options = {}) click to toggle source
# File addon/buildr/css_lint.rb, line 22
def css_lint(output_file, source_paths, options = {})
  args = []
  args << 'csslint'
  args << "--format=#{options[:format]}" if options[:format]
  args << '--quiet'
  [:errors, :warnings, :ignore].each do |severity|
    if options[severity] && !options[severity].empty?
      args << "--#{severity}=#{options[severity].join(',')}"
    end
  end
  if options[:excludes] && !options[:excludes].empty?
    args << "--exclude-list=#{options[:excludes].join(',')}"
  end

  source_paths.each do |source_path|
    args << source_path.to_s
  end

  command = args.join(' ')
  mkdir_p File.dirname(output_file)
  File.open(output_file, 'wb') do |f|
    f.write `#{command}`
  end
  if 0 != $?.exitstatus
    error = IO.read(output_file)
    rm_f output_file
    raise "Problem running csslint: #{command}\n#{error}"
  end
end