class Bundler::CLI - bundler-1.9.9 Documentation

# class Bundler::CLI

### Constants

AUTO_INSTALL_CMDS

### Public Class Methods

handle_no_command_error(command, has_namespace = $thor_runner) click to toggle source
Calls superclass method

    # File lib/bundler/cli.rb, line 71
    def self.handle_no_command_error(command, has_namespace = $thor_runner)
      return super unless command_path = Bundler.which("bundler-#{command}")

      Kernel.exec(command_path, *ARGV[1..-1])
    end

new(*args) click to toggle source
Calls superclass method Bundler::Thor::Actions.new

    # File lib/bundler/cli.rb, line 16
    def initialize(*args)
      super
      current_cmd = args.last[:current_command].name
      custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]
      ENV['BUNDLE_GEMFILE']   = File.expand_path(custom_gemfile) if custom_gemfile
      Bundler::Retry.attempts = options[:retry] || Bundler.settings[:retry] || Bundler::Retry::DEFAULT_ATTEMPTS
      Bundler.rubygems.ui = UI::RGProxy.new(Bundler.ui)
      auto_install if AUTO_INSTALL_CMDS.include?(current_cmd)
    rescue UnknownArgumentError => e
      raise InvalidOption, e.message
    ensure
      self.options ||= {}
      Bundler.ui = UI::Shell.new(options)
      Bundler.ui.level = "debug" if options["verbose"]
    end

source_root() click to toggle source

    # File lib/bundler/cli.rb, line 352
    def self.source_root
      File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
    end

start(*) click to toggle source
Calls superclass method

    # File lib/bundler/cli.rb, line 9
    def self.start(*)
      super
    rescue Exception => e
      Bundler.ui = UI::Shell.new
      raise e
    end

### Public Instance Methods

binstubs(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 205
    def binstubs(*gems)
      require 'bundler/cli/binstubs'
      Binstubs.new(options, gems).run
    end

cache() click to toggle source

    # File lib/bundler/cli.rb, line 232
    def cache
      require 'bundler/cli/cache'
      Cache.new(options).run
    end

check() click to toggle source

    # File lib/bundler/cli.rb, line 101
    def check
      require 'bundler/cli/check'
      Check.new(options).run
    end

clean() click to toggle source

    # File lib/bundler/cli.rb, line 361
    def clean
      require 'bundler/cli/clean'
      Clean.new(options.dup).run
    end

config(*args) click to toggle source

    # File lib/bundler/cli.rb, line 284
    def config(*args)
      require 'bundler/cli/config'
      Config.new(options, args, self).run
    end

console(group = nil) click to toggle source

    # File lib/bundler/cli.rb, line 296
    def console(group = nil)
      require 'bundler/cli/console'
      Console.new(options, group).run
    end

env() click to toggle source

    # File lib/bundler/cli.rb, line 381
    def env
      Env.new.write($stdout)
    end

exec(*args) click to toggle source

    # File lib/bundler/cli.rb, line 267
    def exec(*args)
      require 'bundler/cli/exec'
      Exec.new(options, args).run
    end

gem(name) click to toggle source

    # File lib/bundler/cli.rb, line 347
    def gem(name)
      require 'bundler/cli/gem'
      Gem.new(options, name, self).run
    end

help(cli = nil) click to toggle source
Calls superclass method

    # File lib/bundler/cli.rb, line 41
    def help(cli = nil)
      case cli
      when "gemfile" then command = "gemfile.5"
      when nil       then command = "bundle"
      else command = "bundle-#{cli}"
      end

      manpages = %w(
          bundle
          bundle-config
          bundle-exec
          bundle-install
          bundle-package
          bundle-update
          bundle-platform
          gemfile.5)

      if manpages.include?(command)
        root = File.expand_path("../man", __FILE__)

        if Bundler.which("man") && root !~ %r{^file:/.+!/META-INF/jruby.home/.+}
          Kernel.exec "man #{root}/#{command}"
        else
          puts File.read("#{root}/#{command}.txt")
        end
      else
        super
      end
    end

init() click to toggle source

    # File lib/bundler/cli.rb, line 84
    def init
      require 'bundler/cli/init'
      Init.new(options.dup).run
    end

inject(name, version, *gems) click to toggle source

    # File lib/bundler/cli.rb, line 375
    def inject(name, version, *gems)
      require 'bundler/cli/inject'
      Inject.new(options, name, version, gems).run
    end

install() click to toggle source

    # File lib/bundler/cli.rb, line 153
    def install
      require 'bundler/cli/install'
      Install.new(options.dup).run
    end

licenses() click to toggle source

    # File lib/bundler/cli.rb, line 308
    def licenses
      Bundler.load.specs.sort_by { |s| s.license.to_s }.reverse.each do |s|
        gem_name = s.name
        license  = s.license || s.licenses

        if license.empty?
          Bundler.ui.warn "#{gem_name}: Unknown"
        else
          Bundler.ui.info "#{gem_name}: #{license}"
        end
      end
    end

open(name) click to toggle source

    # File lib/bundler/cli.rb, line 290
    def open(name)
      require 'bundler/cli/open'
      Open.new(options, name).run
    end

outdated(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 223
    def outdated(*gems)
      require 'bundler/cli/outdated'
      Outdated.new(options, gems).run
    end

package() click to toggle source

    # File lib/bundler/cli.rb, line 254
    def package
      require 'bundler/cli/package'
      Package.new(options).run
    end

platform() click to toggle source

    # File lib/bundler/cli.rb, line 369
    def platform
      require 'bundler/cli/platform'
      Platform.new(options).run
    end

show(gem_name = nil) click to toggle source

    # File lib/bundler/cli.rb, line 190
    def show(gem_name = nil)
      require 'bundler/cli/show'
      Show.new(options, gem_name).run
    end

update(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 176
    def update(*gems)
      require 'bundler/cli/update'
      Update.new(options, gems).run
    end

version() click to toggle source

    # File lib/bundler/cli.rb, line 302
    def version
      Bundler.ui.info "Bundler version #{Bundler::VERSION}"
    end

viz() click to toggle source

    # File lib/bundler/cli.rb, line 332
    def viz
      require 'bundler/cli/viz'
      Viz.new(options).run
    end

### Private Instance Methods

auto_install() click to toggle source

Automatically invoke `bundle install` and resume if Bundler.settings exists. This is set through config cmd `bundle config #auto_install 1`.

Note that this method `nil`s out the global Definition object, so it should be called first, before you instantiate anything like an `Installer` that'll keep a reference to the old one instead.

    # File lib/bundler/cli.rb, line 394
    def auto_install
      return unless Bundler.settings[:auto_install]

      begin
        Bundler.definition.specs
      rescue GemNotFound
        Bundler.ui.info "Automatically installing missing gems."
        Bundler.reset!
        invoke :install, []
        Bundler.reset!
      end
    end