### Home Classes Methods

### In Files

- lib/bundler/cli/gem.rb
- lib/bundler/cli.rb

### Parent

Thor

### Namespace

- MODULE Bundler::CLI::Common
- CLASS Bundler::CLI::Add
- CLASS Bundler::CLI::Binstubs
- CLASS Bundler::CLI::Cache
- CLASS Bundler::CLI::Check
- CLASS Bundler::CLI::Clean
- CLASS Bundler::CLI::Config
- CLASS Bundler::CLI::Console
- CLASS Bundler::CLI::Doctor
- CLASS Bundler::CLI::Exec
- CLASS Bundler::CLI::Gem
- CLASS Bundler::CLI::Info
- CLASS Bundler::CLI::Init
- CLASS Bundler::CLI::Inject
- CLASS Bundler::CLI::Install
- CLASS Bundler::CLI::Issue
- CLASS Bundler::CLI::List
- CLASS Bundler::CLI::Lock
- CLASS Bundler::CLI::Open
- CLASS Bundler::CLI::Outdated
- CLASS Bundler::CLI::Package
- CLASS Bundler::CLI::Platform
- CLASS Bundler::CLI::Plugin
- CLASS Bundler::CLI::Pristine
- CLASS Bundler::CLI::Remove
- CLASS Bundler::CLI::Show
- CLASS Bundler::CLI::Update
- CLASS Bundler::CLI::Viz

### Methods

- ::deprecated_option
- ::dispatch
- ::handle_no_command_error
- ::new
- ::reformatted_help_args
- ::source_root
- ::start
- #add
- #binstubs
- #cache
- #check
- #clean
- #cli_help
- #config
- #console
- #doctor
- #env
- #exec
- #help
- #info
- #init
- #inject
- #install
- #issue
- #licenses
- #list
- #lock
- #open
- #outdated
- #package
- #platform
- #pristine
- #remove
- #show
- #update
- #version
- #viz

### Included Modules

- Bundler::Thor::Actions

### Class/Module Index

Quicksearch

- Bundler
- Bundler::APIResponseMismatchError
- Bundler::BuildMetadata
- Bundler::BundlerError
- Bundler::CLI
- Bundler::CLI::Add
- Bundler::CLI::Binstubs
- Bundler::CLI::Cache
- Bundler::CLI::Check
- Bundler::CLI::Clean
- Bundler::CLI::Common
- Bundler::CLI::Config
- Bundler::CLI::Console
- Bundler::CLI::Doctor
- Bundler::CLI::Exec
- Bundler::CLI::Gem
- Bundler::CLI::Info
- Bundler::CLI::Init
- Bundler::CLI::Inject
- Bundler::CLI::Install
- Bundler::CLI::Issue
- Bundler::CLI::List
- Bundler::CLI::Lock
- Bundler::CLI::Open
- Bundler::CLI::Outdated
- Bundler::CLI::Package
- Bundler::CLI::Platform
- Bundler::CLI::Plugin
- Bundler::CLI::Pristine
- Bundler::CLI::Remove
- Bundler::CLI::Show
- Bundler::CLI::Update
- Bundler::CLI::Viz
- Bundler::CompactIndexClient
- Bundler::CompactIndexClient::Cache
- Bundler::CompactIndexClient::Error
- Bundler::CompactIndexClient::Updater
- Bundler::CompactIndexClient::Updater::MisMatchedChecksumError
- Bundler::CurrentRuby
- Bundler::CyclicDependencyError
- Bundler::Definition
- Bundler::DepProxy
- Bundler::Dependency
- Bundler::Deployment
- Bundler::Deprecate
- Bundler::DeprecatedError
- Bundler::Dsl
- Bundler::Dsl::DSLError
- Bundler::EndpointSpecification
- Bundler::Env
- Bundler::EnvironmentPreserver
- Bundler::FeatureFlag
- Bundler::Fetcher
- Bundler::Fetcher::AuthenticationRequiredError
- Bundler::Fetcher::BadAuthenticationError
- Bundler::Fetcher::Base
- Bundler::Fetcher::CertificateFailureError
- Bundler::Fetcher::CompactIndex
- Bundler::Fetcher::Dependency
- Bundler::Fetcher::Downloader
- Bundler::Fetcher::FallbackError
- Bundler::Fetcher::Index
- Bundler::Fetcher::NetworkDownError
- Bundler::Fetcher::SSLError
- Bundler::FileUtils
- Bundler::FileUtils::DryRun
- Bundler::FileUtils::LowMethods
- Bundler::FileUtils::NoWrite
- Bundler::FileUtils::StreamUtils_
- Bundler::FileUtils::Verbose
- Bundler::FriendlyErrors
- Bundler::GemHelper
- Bundler::GemHelpers
- Bundler::GemHelpers::PlatformMatch
- Bundler::GemInstaller
- Bundler::GemNotFound
- Bundler::GemRemoteFetcher
- Bundler::GemRequireError
- Bundler::GemVersionPromoter
- Bundler::Gemdeps
- Bundler::GemfileError
- Bundler::GemfileEvalError
- Bundler::GemfileLockNotFound
- Bundler::GemfileNotFound
- Bundler::GemspecError
- Bundler::GenericSystemCallError
- Bundler::GitError
- Bundler::Graph
- Bundler::Graph::GraphVizClient
- Bundler::HTTPError
- Bundler::Index
- Bundler::Injector
- Bundler::InstallError
- Bundler::InstallHookError
- Bundler::Installer
- Bundler::InvalidOption
- Bundler::LazySpecification
- Bundler::LazySpecification::Identifier
- Bundler::LockfileError
- Bundler::LockfileGenerator
- Bundler::LockfileParser
- Bundler::MarshalError
- Bundler::MatchPlatform
- Bundler::MirrorSockets
- Bundler::Molinillo
- Bundler::Molinillo::CircularDependencyError
- Bundler::Molinillo::Compatibility
- Bundler::Molinillo::Delegates
- Bundler::Molinillo::Delegates::ResolutionState
- Bundler::Molinillo::Delegates::SpecificationProvider
- Bundler::Molinillo::DependencyGraph
- Bundler::Molinillo::DependencyGraph::Action
- Bundler::Molinillo::DependencyGraph::AddEdgeNoCircular
- Bundler::Molinillo::DependencyGraph::DeleteEdge
- Bundler::Molinillo::DependencyGraph::DetachVertexNamed
- Bundler::Molinillo::DependencyGraph::Log
- Bundler::Molinillo::DependencyGraph::Tag
- Bundler::Molinillo::DependencyGraph::Vertex
- Bundler::Molinillo::DependencyState
- Bundler::Molinillo::NoSuchDependencyError
- Bundler::Molinillo::PossibilityState
- Bundler::Molinillo::ResolutionState
- Bundler::Molinillo::Resolver
- Bundler::Molinillo::Resolver::Resolution
- Bundler::Molinillo::Resolver::Resolution::Conflict
- Bundler::Molinillo::Resolver::Resolution::PossibilitySet
- Bundler::Molinillo::Resolver::Resolution::UnwindDetails
- Bundler::Molinillo::ResolverError
- Bundler::Molinillo::SpecificationProvider
- Bundler::Molinillo::UI
- Bundler::Molinillo::VersionConflict
- Bundler::NoSpaceOnDeviceError
- Bundler::OperationNotSupportedError
- Bundler::ParallelInstaller
- Bundler::ParallelInstaller::SpecInstallation
- Bundler::PathError
- Bundler::PermissionError
- Bundler::Persistent
- Bundler::Persistent::Net
- Bundler::Persistent::Net::HTTP
- Bundler::Persistent::Net::HTTP::Persistent
- Bundler::Persistent::Net::HTTP::Persistent::Error
- Bundler::Persistent::Net::HTTP::Persistent::SSLReuse
- Bundler::PersistentHTTP
- Bundler::Plugin
- Bundler::Plugin::API
- Bundler::Plugin::API::Source
- Bundler::Plugin::DSL
- Bundler::Plugin::DSL::PluginGemfileError
- Bundler::Plugin::Events
- Bundler::Plugin::Index
- Bundler::Plugin::Index::CommandConflict
- Bundler::Plugin::Index::SourceConflict
- Bundler::Plugin::Installer
- Bundler::Plugin::Installer::Git
- Bundler::Plugin::Installer::Rubygems
- Bundler::Plugin::MalformattedPlugin
- Bundler::Plugin::SourceList
- Bundler::Plugin::UndefinedCommandError
- Bundler::Plugin::UnknownSourceError
- Bundler::PluginError
- Bundler::ProcessLock
- Bundler::ProductionError
- Bundler::RemoteSpecification
- Bundler::Resolver
- Bundler::Resolver::SpecGroup
- Bundler::Retry
- Bundler::RubyDsl
- Bundler::RubyGemsGemInstaller
- Bundler::RubyVersion
- Bundler::RubyVersionMismatch
- Bundler::RubygemsIntegration
- Bundler::RubygemsIntegration::::Kernel
- Bundler::RubygemsIntegration::AlmostModern
- Bundler::RubygemsIntegration::Ancient
- Bundler::RubygemsIntegration::Future
- Bundler::RubygemsIntegration::Future::Gem
- Bundler::RubygemsIntegration::Gem
- Bundler::RubygemsIntegration::Legacy
- Bundler::RubygemsIntegration::Legacy::Gem::SourceIndex
- Bundler::RubygemsIntegration::Modern
- Bundler::RubygemsIntegration::MoreFuture
- Bundler::RubygemsIntegration::MoreModern
- Bundler::RubygemsIntegration::Transitional
- Bundler::Runtime
- Bundler::SecurityError
- Bundler::Settings
- Bundler::Settings::Mirror
- Bundler::Settings::MirrorConfig
- Bundler::Settings::Mirrors
- Bundler::Settings::TCPSocketProbe
- Bundler::Settings::Validator
- Bundler::Settings::Validator::Rule
- Bundler::SharedHelpers
- Bundler::SimilarityDetector
- Bundler::SocketAddress
- Bundler::Source
- Bundler::Source::Gemspec
- Bundler::Source::Git
- Bundler::Source::Git::GitCommandError
- Bundler::Source::Git::GitNotAllowedError
- Bundler::Source::Git::GitNotInstalledError
- Bundler::Source::Git::GitProxy
- Bundler::Source::Git::MissingGitRevisionError
- Bundler::Source::Metadata
- Bundler::Source::Path
- Bundler::Source::Path::Installer
- Bundler::Source::Rubygems
- Bundler::Source::Rubygems::Remote
- Bundler::SourceList
- Bundler::SpecSet
- Bundler::Standalone
- Bundler::StubSpecification
- Bundler::SudoNotPermittedError
- Bundler::TemporaryResourceError
- Bundler::Thor
- Bundler::Thor::Actions
- Bundler::Thor::Actions::CapturableERB
- Bundler::Thor::Actions::ClassMethods
- Bundler::Thor::AmbiguousCommandError
- Bundler::Thor::AmbiguousTaskError
- Bundler::Thor::Base
- Bundler::Thor::Base::ClassMethods
- Bundler::Thor::Command
- Bundler::Thor::CoreExt
- Bundler::Thor::CoreExt::OrderedHash
- Bundler::Thor::DynamicCommand
- Bundler::Thor::DynamicTask
- Bundler::Thor::Error
- Bundler::Thor::Group
- Bundler::Thor::HiddenCommand
- Bundler::Thor::HiddenTask
- Bundler::Thor::Invocation
- Bundler::Thor::Invocation::ClassMethods
- Bundler::Thor::InvocationError
- Bundler::Thor::LineEditor
- Bundler::Thor::LineEditor::Basic
- Bundler::Thor::LineEditor::Readline
- Bundler::Thor::LineEditor::Readline::PathCompletion
- Bundler::Thor::MalformattedArgumentError
- Bundler::Thor::RakeCompat
- Bundler::Thor::RequiredArgumentMissingError
- Bundler::Thor::Shell
- Bundler::Thor::Shell::Basic
- Bundler::Thor::Shell::Color
- Bundler::Thor::Shell::HTML
- Bundler::Thor::Task
- Bundler::Thor::UndefinedCommandError
- Bundler::Thor::UndefinedTaskError
- Bundler::Thor::UnknownArgumentError
- Bundler::Thor::Util
- Bundler::ThreadCreationError
- Bundler::UI
- Bundler::UI::RGProxy
- Bundler::UI::Shell
- Bundler::UI::Silent
- Bundler::URICredentialsFilter
- Bundler::VersionConflict
- Bundler::VersionRanges
- Bundler::VersionRanges::ReqR
- Bundler::VirtualProtocolError
- Bundler::Worker
- Bundler::Worker::WrappedException
- Bundler::YAMLSerializer
- Bundler::YamlSyntaxError
- Gem
- Gem::Dependency
- Gem::Platform
- Gem::Requirement
- Gem::Specification
- Net
- Net::HTTP
- Net::HTTP::Persistent
- Object

No matching classes.

# Bundler::CLI

### Public Class Methods

deprecated_option(*args, &blk) click to toggle source

    # File lib/bundler/cli.rb, line 64
    def self.deprecated_option(*args, &blk)
      return if Bundler.feature_flag.forget_cli_options?
      method_option(*args, &blk)
    end

dispatch(*) click to toggle source

    # File lib/bundler/cli.rb, line 26
    def self.dispatch(*)
      super do |i|
        i.send(:print_command)
        i.send(:warn_on_outdated_bundler)
      end
    end

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

    # File lib/bundler/cli.rb, line 129
    def self.handle_no_command_error(command, has_namespace = $thor_runner)
      if Bundler.feature_flag.plugins? && Bundler::Plugin.command?(command)
        return Bundler::Plugin.exec_command(command, ARGV[1..-1])
      end

      return super unless command_path = Bundler.which("bundler-#{command}")

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

new(*args) click to toggle source

    # File lib/bundler/cli.rb, line 33
    def initialize(*args)
      super

      custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]
      if custom_gemfile && !custom_gemfile.empty?
        Bundler::SharedHelpers.set_env "BUNDLE_GEMFILE", File.expand_path(custom_gemfile)
        Bundler.reset_paths!
      end

      Bundler.settings.set_command_option_if_given :retry, options[:retry]

      current_cmd = args.last[:current_command].name
      auto_install if AUTO_INSTALL_CMDS.include?(current_cmd)
    rescue UnknownArgumentError => e
      raise InvalidOption, e.message
    ensure
      self.options ||= {}
      unprinted_warnings = Bundler.ui.unprinted_warnings
      Bundler.ui = UI::Shell.new(options)
      Bundler.ui.level = "debug" if options["verbose"]
      unprinted_warnings.each {|w| Bundler.ui.warn(w) }

      if ENV["RUBYGEMS_GEMDEPS"] && !ENV["RUBYGEMS_GEMDEPS"].empty?
        Bundler.ui.warn(
          "The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' "            "experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. "            "To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap => true
        )
      end
    end

reformatted_help_args(args) click to toggle source

Reformat the arguments passed to bundle that include a –help flag into the corresponding `bundle help #{command}` call

    # File lib/bundler/cli.rb, line 691
    def self.reformatted_help_args(args)
      bundler_commands = all_commands.keys
      help_flags = ]--help -h]
      exec_commands = ]e ex exe exec]
      help_used = args.index {|a| help_flags.include? a }
      exec_used = args.index {|a| exec_commands.include? a }
      command = args.find {|a| bundler_commands.include? a }
      if exec_used && help_used
        if exec_used + help_used == 1
          ]help exec]
        else
          args
        end
      elsif help_used
        args = args.dup
        args.delete_at(help_used)
        ["help", command || args].flatten.compact
      else
        args
      end
    end

source_root() click to toggle source

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

start(*) click to toggle source

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

### Public Instance Methods

add(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 368
    def add(*gems)
      require "bundler/cli/add"
      Add.new(options.dup, gems).run
    end

binstubs(*gems) click to toggle source

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

cache() click to toggle source

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

check() click to toggle source

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

clean() click to toggle source

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

cli_help() click to toggle source

    # File lib/bundler/cli.rb, line 73
    def cli_help
      version
      Bundler.ui.info "\n"

      primary_commands = ["install", "update",
                          Bundler.feature_flag.cache_command_is_package? ? "cache" : "package",
                          "exec", "config", "help"]

      list = self.class.printable_commands(true)
      by_name = list.group_by {|name, _message| name.match(/^bundle (\w+)/)[1] }
      utilities = by_name.keys.sort - primary_commands
      primary_commands.map! {|name| (by_name[name] || raise("no primary command #{name}")).first }
      utilities.map! {|name| by_name[name].first }

      shell.say "Bundler commands:\n\n"

      shell.say "  Primary commands:\n"
      shell.print_table(primary_commands, :indent => 4, :truncate => true)
      shell.say
      shell.say "  Utilities:\n"
      shell.print_table(utilities, :indent => 4, :truncate => true)
      shell.say
      self.class.send(:class_options_help, shell)
    end

config(*args) click to toggle source

    # File lib/bundler/cli.rb, line 479
    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 492
    def console(group = nil)
      require "bundler/cli/console"
      Console.new(options, group).run
    end

doctor() click to toggle source

    # File lib/bundler/cli.rb, line 661
    def doctor
      require "bundler/cli/doctor"
      Doctor.new(options).run
    end

env() click to toggle source

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

exec(*args) click to toggle source

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

help(cli = nil) click to toggle source

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

      man_path  = File.expand_path("../../../man", __FILE__)
      man_pages = Hash[Dir.glob(File.join(man_path, "*")).grep(/.*\.\d*\Z/).collect do |f|
        [File.basename(f, ".*"), f]
      end]

      if man_pages.include?(command)
        if Bundler.which("man") && man_path !~ %{^file:/.+!/META-INF/jruby.home/.+}
          Kernel.exec "man #{man_pages[command]}"
        else
          puts File.read("#{man_path}/#{File.basename(man_pages[command])}.txt")
        end
      elsif command_path = Bundler.which("bundler-#{cli}")
        Kernel.exec(command_path, "--help")
      else
        super
      end
    end

info(gem_name) click to toggle source

    # File lib/bundler/cli.rb, line 331
    def info(gem_name)
      require "bundler/cli/info"
      Info.new(options, gem_name).run
    end

init() click to toggle source

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

inject(name, version) click to toggle source

    # File lib/bundler/cli.rb, line 610
    def inject(name, version)
      SharedHelpers.major_deprecation 2, "The `inject` command has been replaced by the `add` command"
      require "bundler/cli/inject"
      Inject.new(options.dup, name, version).run
    end

install() click to toggle source

    # File lib/bundler/cli.rb, line 231
    def install
      SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
      require "bundler/cli/install"
      Bundler.settings.temporary(:no_install => false) do
        Install.new(options.dup).run
      end
    end

issue() click to toggle source

    # File lib/bundler/cli.rb, line 667
    def issue
      require "bundler/cli/issue"
      Issue.new.run
    end

licenses() click to toggle source

    # File lib/bundler/cli.rb, line 514
    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

list() click to toggle source

    # File lib/bundler/cli.rb, line 319
    def list
      require "bundler/cli/list"
      List.new(options).run
    end

lock() click to toggle source

    # File lib/bundler/cli.rb, line 641
    def lock
      require "bundler/cli/lock"
      Lock.new(options).run
    end

open(name) click to toggle source

    # File lib/bundler/cli.rb, line 485
    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 403
    def outdated(*gems)
      require "bundler/cli/outdated"
      Outdated.new(options, gems).run
    end

package() click to toggle source

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

platform() click to toggle source

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

pristine(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 678
    def pristine(*gems)
      require "bundler/cli/pristine"
      Pristine.new(gems).run
    end

remove(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 175
    def remove(*gems)
      require "bundler/cli/remove"
      Remove.new(gems, options).run
    end

show(gem_name = nil) click to toggle source

    # File lib/bundler/cli.rb, line 292
    def show(gem_name = nil)
      if ARGV[0] == "show"
        rest = ARGV[1..-1]

        new_command = rest.find {|arg| !arg.start_with?("--") } ? "info" : "list"

        new_arguments = rest.map do |arg|
          next arg if arg != "--paths"
          next "--path" if new_command == "info"
        end

        old_argv = ARGV.join(" ")
        new_argv = [new_command, *new_arguments.compact].join(" ")

        Bundler::SharedHelpers.major_deprecation(2, "use `bundle #{new_argv}` instead of `bundle #{old_argv}`")
      end
      require "bundler/cli/show"
      Show.new(options, gem_name).run
    end

update(*gems) click to toggle source

    # File lib/bundler/cli.rb, line 277
    def update(*gems)
      SharedHelpers.major_deprecation(2, "The `--force` option has been renamed to `--redownload`") if ARGV.include?("--force")
      require "bundler/cli/update"
      Update.new(options, gems).run
    end

version() click to toggle source

    # File lib/bundler/cli.rb, line 499
    def version
      cli_help = current_command.name == "cli_help"
      if cli_help || ARGV.include?("version")
        build_info = " (#{BuildMetadata.built_at} commit #{BuildMetadata.git_commit_sha})"
      end

      if !cli_help && Bundler.feature_flag.print_only_version_number?
        Bundler.ui.info "#{Bundler::VERSION}#{build_info}"
      else
        Bundler.ui.info "Bundler version #{Bundler::VERSION}#{build_info}"
      end
    end

viz() click to toggle source

    # File lib/bundler/cli.rb, line 539
    def viz
      SharedHelpers.major_deprecation 2, "The `viz` command has been moved to the `bundle-viz` gem, see https://github.com/bundler/bundler-viz"
      require "bundler/cli/viz"
      Viz.new(options.dup).run
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.