Class: Appraisal::Task

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/appraisal/task.rb

Overview

Defines tasks for installing appraisal dependencies and running other tasks
for a given appraisal.

Instance Method Summary collapse

Constructor Details

#initializeTask

Returns a new instance of Task.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/appraisal/task.rb', line 10

def initialize
  namespace(:appraisal) do
    desc("DEPRECATED: Generate a Gemfile for each appraisal")
    task(:gemfiles) do
      warn("`rake appraisal:gemfile` task is deprecated and will be removed soon. " \
        "Please use `appraisal generate`.")
      exec("bundle exec appraisal generate")
    end

    desc("DEPRECATED: Resolve and install dependencies for each appraisal")
    task(:install) do
      warn("`rake appraisal:install` task is deprecated and will be removed soon. " \
        "Please use `appraisal install`.")
      exec("bundle exec appraisal install")
    end

    desc("DEPRECATED: Remove all generated gemfiles from gemfiles/ folder")
    task(:cleanup) do
      warn("`rake appraisal:cleanup` task is deprecated and will be removed soon. " \
        "Please use `appraisal clean`.")
      exec("bundle exec appraisal clean")
    end

    begin
      AppraisalFile.each do |appraisal|
        desc("DEPRECATED: Run the given task for appraisal #{appraisal.name}")
        task(appraisal.name) do
          ARGV.shift
          warn("`rake appraisal:#{appraisal.name}` task is deprecated and will be removed soon. " \
            "Please use `appraisal #{appraisal.name} rake #{ARGV.join(" ")}`.")
          exec("bundle exec appraisal #{appraisal.name} rake #{ARGV.join(" ")}")
        end
      end
    rescue AppraisalsNotFound
    end

    task(:all) do
      ARGV.shift
      exec("bundle exec appraisal rake #{ARGV.join(" ")}")
    end
  end

  desc("Run the given task for all appraisals")
  task(:appraisal => "appraisal:all")
end