module Bones::Rspec::RspecVersion2

def define_tasks

def define_tasks
  config = ::Bones.config
  namespace :spec do
    desc 'Run all specs with basic output'
    ::RSpec::Core::RakeTask.new(:run) do |t|
      t.ruby_opts = config.ruby_opts
      t.rspec_opts = config.spec.opts unless config.spec.opts.empty?
      t.pattern = config.spec.files
    end
    if have? :rcov
      desc 'Run all specs with Rcov'
      ::RSpec::Core::RakeTask.new(:rcov) do |t|
        t.ruby_opts = config.ruby_opts
        t.rspec_opts = config.spec.opts unless config.spec.opts.empty?
        t.pattern = config.spec.files
        t.rcov = true
        t.rcov_path = config.rcov.path
        rcov_opts = []
        rcov_opts.concat config.rcov.opts
        rcov_opts << '--output' << config.rcov.dir if config.rcov.dir
        t.rcov_opts = rcov_opts
      end
      task :clobber_rcov do
        rm_r config.rcov.dir rescue nil
      end
    end
  end  # namespace :spec
  desc 'Alias to spec:run'
  task :spec => 'spec:run'
  task :clobber => 'spec:clobber_rcov' if have? :rcov
end