diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-25 01:20:00 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-25 01:20:00 +0000 |
commit | a94332819463589fe4537cc62beb41a0ee354cf3 (patch) | |
tree | 6cc30414963f413c171180b91d9a8490fa212f5d /bin/rdoc | |
parent | 608b9c29133e6d4c0822f1500e45c2a8073891be (diff) |
Use stub executables generated by RubyGems istead of original executables.
It resolved the conflict issues when invoking `gem i rdoc` and the binstub
issues with Bundler and Rails.
[Bug #5060][ruby-core:38257][Fix GH-2023]
* https://github.com/rubygems/rubygems/pull/2338
* https://github.com/heroku/heroku-buildpack-ruby/issues/829
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'bin/rdoc')
-rwxr-xr-x | bin/rdoc | 53 |
1 files changed, 18 insertions, 35 deletions
@@ -1,44 +1,27 @@ #!/usr/bin/env ruby # -# RDoc: Documentation tool for source code -# (see lib/rdoc/rdoc.rb for more information) +# This file was generated by RubyGems. +# +# The application 'rdoc' is installed as part of a gem, and +# this file is here to facilitate running it. # -# Copyright (c) 2003 Dave Thomas -# Released under the same terms as Ruby -begin - gem 'rdoc' -rescue NameError => e # --disable-gems - raise unless e.name == :gem -rescue Gem::LoadError -end +require 'rubygems' -require 'rdoc/rdoc' +version = ">= 0.a" -begin - r = RDoc::RDoc.new - r.document ARGV -rescue Errno::ENOSPC - $stderr.puts 'Ran out of space creating documentation' - $stderr.puts - $stderr.puts 'Please free up some space and try again' -rescue SystemExit - raise -rescue Exception => e - if $DEBUG_RDOC then - $stderr.puts e.message - $stderr.puts "#{e.backtrace.join "\n\t"}" - $stderr.puts - elsif Interrupt === e then - $stderr.puts - $stderr.puts 'Interrupted' - else - $stderr.puts "uh-oh! RDoc had a problem:" - $stderr.puts e.message - $stderr.puts - $stderr.puts "run with --debug for full backtrace" +if ARGV.first + str = ARGV.first + str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding + if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then + version = $1 + ARGV.shift end - - exit 1 end +if Gem.respond_to?(:activate_bin_path) +load Gem.activate_bin_path('rdoc', 'rdoc', version) +else +gem "rdoc", version +load Gem.bin_path("rdoc", "rdoc", version) +end |