From: "naruse (Yui NARUSE)" Date: 2012-06-15T05:30:16+09:00 Subject: [ruby-core:45654] [ruby-trunk - Bug #6124] What is the purpose of "fake" gems in Ruby Issue #6124 has been updated by naruse (Yui NARUSE). vo.x (Vit Ondruch) wrote: > naruse (Yui NARUSE) wrote: > > nobu (Nobuyoshi Nakada) wrote: > > % ruby -rjson -e'puts JSON::VERSION' > > 1.5.4 > > % ruby -e'require"json";puts JSON::VERSION' > > 1.5.4 > > % ruby -e'gem"json";require"json";puts JSON::VERSION' > > 1.7.3 > > > > As they show, you can load gem's json if and only if call gem "json". > > So what you want to do is already you can, > > and if you want to write this shorter, it is another issue. > > Yes, you can, but you don't have to do it for other "real" gems. But that was not my only point. Could you clarify your proposal? > That was just one of many examples how the "fake" gems break expectations, such as ruby-core:44996 and ruby-core:45414. You are providing me workaround where I am looking for final solution. > [ruby-core:44996] It seems not an issue of fake gems. It is only a bug of rake/testtask.rb. > [ruby-core:45414] I can't imagine the use case of this, and I don't think this should be fixed. ---------------------------------------- Bug #6124: What is the purpose of "fake" gems in Ruby https://bugs.ruby-lang.org/issues/6124#change-27254 Author: vo.x (Vit Ondruch) Status: Closed Priority: Normal Assignee: nahi (Hiroshi Nakamura) 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/