Issue #6124 has been updated by Vit Ondruch.


Let's take json for example:

C:\>gem list | find "json"
json (1.6.3, 1.5.4)

C:\>ruby -rjson -e "puts JSON::VERSION"
1.5.4

RubyGems always loads the newest version if not specified otherwise, but it does not apply for gems which are already bundled in Ruby.

And the reason I am wondering is, because this bundling again makes hard time to package the bundled gems for Fedora, it makes hard to update them. All just because they don't behave like other gems, because they are not gem in fact. And if there is .gemspec file does not really matter IMO.
----------------------------------------
Bug #6124: What is the purpose of "fake" gems in Ruby
https://bugs.ruby-lang.org/issues/6124

Author: Vit Ondruch
Status: Open
Priority: Normal
Assignee: Eric Hodel
Category: 
Target version: 
ruby -v: ruby 1.9.3p0 (2011-10-30) [x86_64-linux]


As I tried to point out in #6123, the "fake" gems which are distributed with Ruby breaks user's expectations. The following example should fail:

$ ruby --disable-gems -e "puts require('bigdecimal')"
true

However, it is not failing. Could you please enlighten me what is the purpose of fake gem then? Even if you install updated BigDecimal from rubygems.org, the bundled version will won unless you use "gem 'bidgecimal'" somewhere in the code. This makes no sense.

Don't take me wrong, I am big fan of gemified stdlib #5481, however this is not the way how it should be done.


-- 
http://bugs.ruby-lang.org/