lib/taza/tasks.rb in scudco-taza-0.8.1 vs lib/taza/tasks.rb in scudco-taza-0.8.3

- old
+ new

@@ -1,49 +1,53 @@ -require 'rake' -require 'rake/testtask' require 'rubygems' +require 'rake' require 'taglob/rake/tasks' require 'spec/rake/spectask' def tags ENV['TAGS'] end -namespace :spec do - def format_options(file_name) - file_name = "artifacts/#{file_name}/index.html" - dir_name = File.dirname(file_name) - FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name) - ["--format","html:#{file_name}","--format","p"] - end +module Taza + module Rake + class Tasks + attr_accessor :spec_opts - desc "Run all functional specs" - Spec::Rake::SpecTask.new :functional do |t| - t.spec_files = Dir.taglob('spec/functional/**/*_spec.rb',tags) - t.spec_opts << format_options("functional/all") - end - desc "Run all integration specs" - Spec::Rake::SpecTask.new :integration do |t| - t.spec_files = Dir.taglob('spec/integration/**/*_spec.rb',tags) - t.spec_opts << format_options("integration/all") - end + def initialize + yield self if block_given? + define + end - namespace :functional do - Dir.glob('./spec/functional/*/').each do |dir| - site_name = File.basename(dir) - desc "Run all functional specs for #{site_name}" - Spec::Rake::SpecTask.new site_name.to_sym do |t| - t.spec_files = Dir.taglob("#{dir}**/*_spec.rb",tags) - t.spec_opts << format_options("functional/#{site_name}/all") + def define_spec_task(name,glob_path) + Spec::Rake::SpecTask.new name do |t| + t.spec_files = Dir.taglob(glob_path,tags) + t.spec_opts << spec_opts + end end - namespace site_name.to_sym do - Dir.glob("./spec/functional/#{site_name}/*_spec.rb").each do |page_spec_file| - page_spec_name = File.basename(page_spec_file) - page_name = page_spec_name.chomp('_spec.rb') - Spec::Rake::SpecTask.new page_name.to_sym do |t| - t.spec_files = page_spec_file - t.spec_opts << format_options("functional/#{site_name}/#{page_name}") + + def define + namespace :spec do + desc "Run all functional specs" + define_spec_task(:functional,'spec/functional/**/*_spec.rb') + desc "Run all integration specs" + define_spec_task(:integration,'spec/integration/**/*_spec.rb') + + namespace :functional do + Dir.glob('./spec/functional/*/').each do |dir| + site_name = File.basename(dir) + desc "Run all functional specs for #{site_name}" + define_spec_task(site_name,"#{dir}**/*_spec.rb") + + namespace site_name do + Dir.glob("./spec/functional/#{site_name}/*_spec.rb").each do |page_spec_file| + page_name = File.basename(page_spec_file,'_spec.rb') + define_spec_task(page_name,page_spec_file) + end + end + + end end + end end end end end