Project

General

Profile

This project is closed and read-only.

Actions

Bug #2439

closed

gem_prelude.rbとlib/rubygems.rbでKernel#gemの可視性が異なる

Bug #2439: gem_prelude.rbとlib/rubygems.rbでKernel#gemの可視性が異なる

Added by sho-h (Sho Hashimoto) almost 17 years ago. Updated over 15 years ago.

Status:
Closed
Assignee:
-
[ruby-dev:39838]

Description

=begin
lib/rubygems.rbではKernel#gemがprivateになっていますが、gem_prelude.rbではそうではないため、以下のような事ができてしまいます。

$ irb
irb(main):001:0> 1.gem "minitest", "1.4.2"
=> true

irb(main):002:0> 1.gem "rake", "0.8.7"
NoMethodError: private method gem' called for 1:Fixnum from (irb):2 from /usr/local/bin/irb1.9.2-trunk:12:in

'

irb(main):003:0> gem "rake", "0.8.7"
=> true

rubygemsに詳しくないので嬉しくない修正かもしれませんが、以下のようにすると1度目の1.gemから「NoMethodError: private method `gem' called ...」となりました。

--- gem_prelude.rb (revision 25993)
+++ gem_prelude.rb (working copy)
@@ -16,6 +16,8 @@
Gem.push_gem_version_on_load_path(gem_name, *version_requirements)
end

  • private :gem

  • end

    module Gem
    =end

Actions

Also available in: PDF Atom