Sha256: 34ea0faa4c150000719f2fe6fd5627e21dc37c8572b8de412c33dc0d234fe7b2

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

require 'rubygems'
require 'rake'
require 'taglob'
require 'spec/rake/spectask'

def tags
  ENV['TAGS']
end

module Taza
  module Rake
    class Tasks
      attr_accessor :spec_opts

      def initialize
        yield self if block_given?
        define
      end

      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

      def define
        namespace :spec do
          Dir.glob('./spec/*/').each do |dir|
            recurse_to_create_rake_tasks(dir)
          end
        end
      end
      def recurse_to_create_rake_tasks(dir)
        basename = File.basename(dir)
        define_spec_task(basename,File.join(dir,"**","*_spec.rb"))
        namespace basename do
          Dir.glob(File.join(dir,"*_spec.rb")).each do |spec_file|
            spec_name = File.basename(spec_file,'_spec.rb')
            define_spec_task(spec_name,spec_file)
          end
          Dir.glob(File.join(dir,"*/")).each do |sub_dir|
            recurse_to_create_rake_tasks(sub_dir)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
scudco-taza-0.8.4 lib/taza/tasks.rb
taza-0.8.4 lib/taza/tasks.rb