require 'rubygems' require 'bundler/setup' require 'rake' require 'rake/rdoctask' require 'rcov/rcovtask' require 'date' require 'rake/gempackagetask' require 'rspec/core/rake_task' require 'cucumber/rake/task' require 'appraisal' desc 'Default: run the specs and features.' task :default => 'spec:unit' do system("rake -s appraisal spec:acceptance features;") end namespace :spec do desc "Run unit specs" RSpec::Core::RakeTask.new('unit') do |t| t.pattern = 'spec/factory_girl/**/*_spec.rb' end desc "Run acceptance specs" RSpec::Core::RakeTask.new('acceptance') do |t| t.pattern = 'spec/acceptance/**/*_spec.rb' end end desc "Run the unit and acceptance specs" task :spec => ['spec:unit', 'spec:acceptance'] desc 'Performs code coverage on the factory_girl plugin.' Rcov::RcovTask.new do |t| t.test_files = FileList['spec/*_spec.rb'] t.verbose = true end desc 'Generate documentation for the factory_girl plugin.' Rake::RDocTask.new(:rdoc) do |rdoc| rdoc.rdoc_dir = 'rdoc' rdoc.title = 'Factory Girl' rdoc.options << '--line-numbers' << "--main" << "README.rdoc" rdoc.rdoc_files.include('README.rdoc') rdoc.rdoc_files.include('CONTRIBUTION_GUIDELINES.rdoc') rdoc.rdoc_files.include('lib/**/*.rb') end desc 'Update documentation on website' task :sync_docs => 'rdoc' do `rsync -ave ssh rdoc/ dev@dev.thoughtbot.com:/home/dev/www/dev.thoughtbot.com/factory_girl` end desc "Clean files generated by rake tasks" task :clobber => [:clobber_rdoc, :clobber_rcov] Cucumber::Rake::Task.new(:features) do |t| t.fork = true t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'progress')] end eval("$specification = begin; #{IO.read('factory_girl.gemspec')}; end") Rake::GemPackageTask.new($specification) do |package| package.need_zip = true package.need_tar = true end