Sha256: 865ee7bb5061fd7c9fcf9d0b9942b2664cdbb34caac43ad475739d3dcbf6c1af

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

require 'appraisal/file'
require 'rake/tasklib'

module Appraisal
  # Defines tasks for installing appraisal dependencies and running other tasks
  # for a given appraisal.
  class Task < Rake::TaskLib
    def initialize
      namespace :appraisal do
        desc "Generate a Gemfile for each appraisal"
        task :gemfiles do
          File.each do |appraisal|
            appraisal.write_gemfile
          end
        end

        desc "Resolve and install dependencies for each appraisal"
        task :install => :gemfiles do
          File.each do |appraisal|
            appraisal.install
          end
        end

        File.each do |appraisal|
          desc "Run the given task for appraisal #{appraisal.name}"
          task appraisal.name do
            Command.from_args(appraisal.gemfile_path).exec
          end
        end

        task :all do
          File.each do |appraisal|
            Command.from_args(appraisal.gemfile_path).run
          end
          exit
        end
      end

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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
appraisal-0.3.3 lib/appraisal/task.rb
appraisal-0.3.1 lib/appraisal/task.rb
appraisal-0.2.0 lib/appraisal/task.rb
appraisal-0.1 lib/appraisal/task.rb