diff --git a/Rakefile b/Rakefile index cb9d93e..828e0af 100644 --- a/Rakefile +++ b/Rakefile @@ -1 +1,71 @@ Dir[File.expand_path(File.dirname(__FILE__)) + "/lib/tasks/**/*.rake"].sort.each { |ext| load ext } + +# Modifided from the RSpec on Rails plugins +PLUGIN_ROOT = File.expand_path(File.dirname(__FILE__)) + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. +rspec_base = File.expand_path(File.dirname(__FILE__) + '/../rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) + +require 'rake' +require 'rake/rdoctask' +require 'spec/rake/spectask' +require 'spec/translator' + +# No Database needed +spec_prereq = :noop +task :noop do +end + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory (excluding plugin specs)" +Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +namespace :spec do + desc "Run all specs in spec directory with RCov (excluding plugin specs)" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = lambda do + IO.readlines("#{PLUGIN_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten + end + end + + desc "Print Specdoc for all specs (excluding plugin specs)" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + desc "Print Specdoc for all specs as HTML (excluding plugin specs)" + Spec::Rake::SpecTask.new(:htmldoc) do |t| + t.spec_opts = ["--format", "html", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers, :lib].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end +end + +desc 'Generate documentation for the Budget plugin.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'doc' + rdoc.title = 'Budget' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README.txt') + rdoc.rdoc_files.include('lib/**/*.rb') + rdoc.rdoc_files.include('app/**/*.rb') +end diff --git a/lib/tasks/rspec.rake b/lib/tasks/rspec.rake deleted file mode 100644 index 07feeb9..0000000 --- a/lib/tasks/rspec.rake +++ /dev/null @@ -1,56 +0,0 @@ -# Modifided from the RSpec on Rails plugins -PLUGIN_ROOT = File.expand_path(File.dirname(__FILE__) + '/../../') - - -# In rails 1.2, plugins aren't available in the path until they're loaded. -# Check to see if the rspec plugin is installed first and require -# it if it is. If not, use the gem version. -rspec_base = File.expand_path(File.dirname(__FILE__) + '/../rspec/lib') -$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) -require 'spec/rake/spectask' -require 'spec/translator' - -spec_prereq = File.exist?(File.join(File.expand_path(File.dirname(__FILE__) + '/../../../'), 'config', 'database.yml')) ? "db:test:prepare" : :noop -task :noop do -end - -task :default => :spec -task :stats => "spec:statsetup" - -desc "Run all specs in spec directory (excluding plugin specs)" -Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| - t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] - t.spec_files = FileList['spec/**/*_spec.rb'] -end - -namespace :spec do - desc "Run all specs in spec directory with RCov (excluding plugin specs)" - Spec::Rake::SpecTask.new(:rcov) do |t| - t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] - t.spec_files = FileList['spec/**/*_spec.rb'] - t.rcov = true - t.rcov_opts = lambda do - IO.readlines("#{PLUGIN_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten - end - end - - desc "Print Specdoc for all specs (excluding plugin specs)" - Spec::Rake::SpecTask.new(:doc) do |t| - t.spec_opts = ["--format", "specdoc", "--dry-run"] - t.spec_files = FileList['spec/**/*_spec.rb'] - end - - desc "Print Specdoc for all specs as HTML (excluding plugin specs)" - Spec::Rake::SpecTask.new(:htmldoc) do |t| - t.spec_opts = ["--format", "html", "--dry-run"] - t.spec_files = FileList['spec/**/*_spec.rb'] - end - - [:models, :controllers, :views, :helpers, :lib].each do |sub| - desc "Run the specs under spec/#{sub}" - Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| - t.spec_opts = ['--options', "\"#{PLUGIN_ROOT}/spec/spec.opts\""] - t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] - end - end -end