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 83 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 custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile] ENV["BUNDLE_GEMFILE"] = File.expand_path(custom_gemfile) if custom_gemfile && !custom_gemfile.empty? Bundler.settings[:retry] = options[:retry] if 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 ||= {} Bundler.ui = UI::Shell.new(options) Bundler.ui.level = "debug" if options["verbose"] 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
source_root()
click to toggle source
# File lib/bundler/cli.rb, line 373 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 225 def binstubs(*gems) require "bundler/cli/binstubs" Binstubs.new(options, gems).run end
cache()
click to toggle source
# File lib/bundler/cli.rb, line 252 def cache require "bundler/cli/cache" Cache.new(options).run end
check()
click to toggle source
# File lib/bundler/cli.rb, line 114 def check require "bundler/cli/check" Check.new(options).run end
clean()
click to toggle source
# File lib/bundler/cli.rb, line 382 def clean require "bundler/cli/clean" Clean.new(options.dup).run end
config(*args)
click to toggle source
# File lib/bundler/cli.rb, line 305 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 317 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 416 def env Env.new.write($stdout) end
exec(*args)
click to toggle source
# File lib/bundler/cli.rb, line 288 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 368 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 50 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-gem 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 elsif command_path = Bundler.which("bundler-#{cli}") Kernel.exec(command_path, "--help") else super end end
init()
click to toggle source
# File lib/bundler/cli.rb, line 96 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 396 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 170 def install require "bundler/cli/install" Install.new(options.dup).run end
licenses()
click to toggle source
# File lib/bundler/cli.rb, line 329 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
lock()
click to toggle source
# File lib/bundler/cli.rb, line 410 def lock require "bundler/cli/lock" Lock.new(options).run end
open(name)
click to toggle source
# File lib/bundler/cli.rb, line 311 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 243 def outdated(*gems) require "bundler/cli/outdated" Outdated.new(options, gems).run end
package()
click to toggle source
# File lib/bundler/cli.rb, line 274 def package require "bundler/cli/package" Package.new(options).run end
platform()
click to toggle source
# File lib/bundler/cli.rb, line 390 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 209 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 195 def update(*gems) require "bundler/cli/update" Update.new(options, gems).run end
version()
click to toggle source
# File lib/bundler/cli.rb, line 323 def version Bundler.ui.info "Bundler version #{Bundler::VERSION}" end
viz()
click to toggle source
# File lib/bundler/cli.rb, line 353 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 429 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