#!/usr/bin/env ruby
require 'bogus_sass_checker'

PROJECT_PATH = Dir.pwd
SASS_DIRECTORY_PATH = File.join(PROJECT_PATH, "public/stylesheets/sass/")

unless File.exists?(SASS_DIRECTORY_PATH)
  puts "can't find your Sass directory in #{SASS_DIRECTORY_PATH}"
  exit 1
end

stylesheets = Dir.new(SASS_DIRECTORY_PATH).entries - ['.', '..']
puts "found #{stylesheets.size} files in the sass directory...\npossible unused CSS selectors:"
stylesheets.each do |sass_file|
  stylesheet = open(SASS_DIRECTORY_PATH + sass_file).read
  # finds all selectors that start with # or . but don't have a :, = or + infront of them
  #   desired effects:
  #     finds most #ids and .classes
  #     doesn't match :color #CCC
  #     doesn't match !variable = #ABCDEF
  #     doesn't match +mixin(10.5%, #ABCDEF)
  #   undesired side effects:
  #     it doesn't match ids or classes in the sibling selector: h2 + p.sibling
  stylesheet.scan(/^(?:[^:=+]*)([#\.](?:[\w]*))/).each do |match|
    result = search_contents_for(match)
    if result == ""
      puts match
    end
  end
end