Class: Bundler::CLI::Binstubs
- Inherits:
-
Object
- Object
- Bundler::CLI::Binstubs
- Defined in:
- lib/bundler/cli/binstubs.rb
Instance Attribute Summary collapse
-
#gems ⇒ Object
readonly
Returns the value of attribute gems.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
-
#initialize(options, gems) ⇒ Binstubs
constructor
A new instance of Binstubs.
- #run ⇒ Object
Constructor Details
permalink #initialize(options, gems) ⇒ Binstubs
Returns a new instance of Binstubs.
6 7 8 9 |
# File 'lib/bundler/cli/binstubs.rb', line 6 def initialize(, gems) @options = @gems = gems end |
Instance Attribute Details
permalink #gems ⇒ Object (readonly)
Returns the value of attribute gems.
5 6 7 |
# File 'lib/bundler/cli/binstubs.rb', line 5 def gems @gems end |
permalink #options ⇒ Object (readonly)
Returns the value of attribute options.
5 6 7 |
# File 'lib/bundler/cli/binstubs.rb', line 5 def @options end |
Instance Method Details
permalink #run ⇒ Object
[View source]
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/bundler/cli/binstubs.rb', line 11 def run Bundler.definition.validate_runtime! path_option = ["path"] path_option = nil if path_option&.empty? Bundler.settings.set_command_option :bin, path_option if ["path"] Bundler.settings.set_command_option_if_given :shebang, ["shebang"] installer = Installer.new(Bundler.root, Bundler.definition) installer_opts = { force: [:force], binstubs_cmd: true, all_platforms: ["all-platforms"], } if [: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_name, Bundler.definition.specs ) end if [:standalone] if gem_name == "bundler" Bundler.ui.warn("Sorry, Bundler can only be run via RubyGems.") unless [:all] next end 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 |