require 'rubygems'
require 'rspec/core/rake_task'

task :syntax do
  dirs = [ 'bin/*', 'lib/*', 'spec/*']
  dirs.each do |d|
    ret = check_syntax(d)
    exit_code = $?
    puts ret
    if !(/\ASyntax OK\Z/ =~ ret) or exit_code != 0
      puts "Build failed, see above syntax error or warning"
      exit(1)
    end
  end
end

def check_syntax(dir)
  return `ruby --verbose -c #{dir} 2>&1`
end

RSpec::Core::RakeTask.new(:spec) do |t|
  t.pattern = 'spec/**/*.spec'
end

task :default => [:syntax, :spec]