On Nov 2, 2007, at 05:00 , NAKAMURA, Hiroshi wrote: > Eric Hodel wrote: >> On Oct 21, 2007, at 18:06 , NAKAMURA, Hiroshi wrote: >>> NAKAMURA, Hiroshi wrote: >>>> At the last, I have some questions about rubygems. >>>> >>>> 1. can rubygems/requirement.rb and rubygems/version.rb be free from >>>> require 'rubygems'? >> >> They are needed for 3. > > Sure. But they (requirement.rb and version.rb) does not need other > features, right? I just mean version.rb.diff can be applied. Third > party product may want to use Gem::Requirement and Gem::Version.
Other than module Gem, correct. >>> 4. rubygems adds spec.bindir to $LOAD_PATH when a gem is activated. >>> Can't it be a problem when 2 files in bindir and libdir have the >>> same >>> name? I know it's needed for gem wrapper for a bin script and the >>> file >>> in bindir won't be activated by require. >> >> require will always try 'foo.rb' or similar, bin path files are >> loaded with #load, instead. It is a cheap trick. >> >> $ echo 'puts "foo"' > foo >> $ echo 'puts "foo.rb"' > foo.rb >> $ ruby -rfoo -e0 >> foo.rb >> $ ruby -e 'load "foo"' >> foo > > But if there're bin/foo.rb in bindir and lib/foo.rb in require_path? > Gem wrapper surely loads foo.rb in bindir because spec.bindir is > unshifted to $LOAD_PATH. But 'require "foo"' in a program loads > 'foo.rb' in bindir I think. Correct me if I misunderstand something. Yes, it would, but this has not been a problem in practice. I think it is an acceptable restriction on gem executables. -- Poor workers blame their tools. Good workers build better tools. The best workers get their tools to do the work for them. -- Syndicate Wars _______________________________________________ Rubygems-developers mailing list [email protected] http://rubyforge.org/mailman/listinfo/rubygems-developers
