# RSpec tasks begin require 'rspec/core/rake_task' # Create the 'spec' task RSpec::Core::RakeTask.new(:spec) do |task| task.rspec_opts = '--color' end namespace :spec do desc "Run the test suite and generate coverage metrics" task :coverage => [ :simplecov, :spec ] # Add test coverage to the 'spec' task. task :simplecov do ENV['COVERAGE'] = '1' end end task :default => :spec rescue LoadError warn "[Warning]: Could not load `rspec`." end # YARD tasks begin require 'yard' require 'yard/rake/yardoc_task' YARD::Rake::YardocTask.new(:doc) do |yardoc| yardoc.files = [ 'lib/**/*.rb', '-', '**/*.md' ] end rescue LoadError warn "[Warning]: Could not load `yard`." end # Cane tasks begin require 'cane/rake_task' Cane::RakeTask.new(:cane) do |cane| cane.add_threshold 'coverage/.last_run.json', :>=, 100 cane.abc_max = 15 end Rake::Task['cane'].prerequisites << Rake::Task['spec:coverage'] Rake::Task[:default].clear_prerequisites task :default => :cane rescue LoadError warn "[Warning]: Could not load `cane`." end # Gem tasks begin require 'rubygems/tasks' task :gem => 'gem:build' task :validate => [ 'cane', 'doc', 'gem:validate' ] namespace :gem do Gem::Tasks.new( :tag => { :format => 'v%s' }, :sign => { :checksum => true, :pgp => true }, :build => { :tar => true } ) end rescue LoadError warn "[Warning]: Could not load `rubygems/tasks`." end