In Files

  • bundler/cli/binstubs.rb

Parent

Object

Methods

Class/Module Index [+]

Quicksearch
No matching classes.

Bundler::CLI::Binstubs

Attributes

gems[R]
options[R]

Public Class Methods

new(options, gems) click to toggle source
 
 # File bundler/cli/binstubs.rb, line 6
def initialize(options, gems)
 @options = options
 @gems = gems
end
 

Public Instance Methods

run() click to toggle source
 
 # File bundler/cli/binstubs.rb, line 11
def run
 Bundler.definition.validate_runtime!
 path_option = options["path"]
 path_option = nil if path_option && path_option.empty?
 Bundler.settings.set_command_option :bin, path_option if options["path"]
 Bundler.settings.set_command_option_if_given :shebang, options["shebang"]
 installer = Installer.new(Bundler.root, Bundler.definition)
 installer_opts = {
 :force => options[:force],
 :binstubs_cmd => true,
 :all_platforms => options["all-platforms"],
 }
 if options[:all]
 raise InvalidOption, "Cannot specify --all with specific gems" unless gems.empty?
 @gems = Bundler.definition.specs.map(&:name)
 installer_opts.delete(:binstubs_cmd)
 elsif gems.empty?
 Bundler.ui.error "`bundle binstubs` needs at least one gem to run."
 exit 1
 end
 gems.each do |gem_name|
 spec = Bundler.definition.specs.find {|s| s.name == gem_name }
 unless spec
 raise GemNotFound, Bundler::CLI::Common.gem_not_found_message(
 gem_name, Bundler.definition.specs
 )
 end
 if options[:standalone]
 next Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") if gem_name == "bundler"
 Bundler.settings.temporary(:path => (Bundler.settings[:path] || Bundler.root)) do
 installer.generate_standalone_bundler_executable_stubs(spec, installer_opts)
 end
 else
 installer.generate_bundler_executable_stubs(spec, installer_opts)
 end
 end
end
 

AltStyle によって変換されたページ (->オリジナル) /