class Appraisal::CLI

Public Class Methods

exit_on_failure?() click to toggle source
# File lib/appraisal/cli.rb, line 35
def self.exit_on_failure?
  true
end
help(shell, subcommand = false) click to toggle source

Override help command to print out usage

Calls superclass method
# File lib/appraisal/cli.rb, line 10
    def self.help(shell, subcommand = false)
      shell.say strip_heredoc(<<-help)
        Appraisal: Find out what your Ruby gems are worth.

        Usage:
          appraisal [APPRAISAL_NAME] EXTERNAL_COMMAND

          If APPRAISAL_NAME is given, only run that EXTERNAL_COMMAND against the given
          appraisal, otherwise it runs the EXTERNAL_COMMAND against all appraisals.
      help

      if File.exist?('Appraisals')
        shell.say
        shell.say 'Available Appraisal(s):'

        AppraisalFile.each do |appraisal|
          shell.say "  - #{appraisal.name}"
        end
      end

      shell.say

      super
    end

Private Class Methods

strip_heredoc(string) click to toggle source
# File lib/appraisal/cli.rb, line 111
def self.strip_heredoc(string)
  indent = string.scan(/^[ \t]*(?=\S)/).min.size || 0
  string.gsub(/^[ \t]{#{indent}}/, '')
end

Public Instance Methods

clean() click to toggle source
# File lib/appraisal/cli.rb, line 72
def clean
  FileUtils.rm_f Dir['gemfiles/*.{gemfile,gemfile.lock}']
end
generate() click to toggle source
# File lib/appraisal/cli.rb, line 65
def generate
  AppraisalFile.each do |appraisal|
    appraisal.write_gemfile
  end
end
install() click to toggle source
# File lib/appraisal/cli.rb, line 55
def install
  invoke :generate, [], {}

  AppraisalFile.each do |appraisal|
    appraisal.install(options)
    appraisal.relativize
  end
end
list() click to toggle source
# File lib/appraisal/cli.rb, line 86
def list
  AppraisalFile.new.appraisals.each { |appraisal| puts appraisal.name }
end
update(*gems) click to toggle source
# File lib/appraisal/cli.rb, line 77
def update(*gems)
  invoke :generate, []

  AppraisalFile.each do |appraisal|
    appraisal.update(gems)
  end
end
version() click to toggle source
# File lib/appraisal/cli.rb, line 91
def version
  puts "Appraisal #{VERSION}"
end

Private Instance Methods

method_missing(name, *args, &block) click to toggle source
# File lib/appraisal/cli.rb, line 97
def method_missing(name, *args, &block)
  matching_appraisal = AppraisalFile.new.appraisals.detect do |appraisal|
    appraisal.name == name.to_s
  end

  if matching_appraisal
    Command.new(args, :gemfile => matching_appraisal.gemfile_path).run
  else
    AppraisalFile.each do |appraisal|
      Command.new(ARGV, :gemfile => appraisal.gemfile_path).run
    end
  end
end