Kaye Ng wrote in post #1030792:
> Hi!
> I'm running windows 7.  Inside this directory, C:\Ruby192\bin , is the
> file 'gem' .   It's just 'gem' , no extension like .rb or anything.
>
> Opened it with a text editor:
> ------------------------------------------------------------------------
>
> #!/usr/bin/env ruby
> #--
> # Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
> # All rights reserved.
> # See LICENSE.txt for permissions.
> #++
>
> require 'rubygems'
> require 'rubygems/gem_runner'
> require 'rubygems/exceptions'
>
> required_version = Gem::Requirement.new ">= 1.8.7"
>
> unless required_version.satisfied_by? Gem.ruby_version then
>   abort "Expected Ruby Version #{required_version}, is
> #{Gem.ruby_version}"
> end
>
> args = ARGV.clone
>
> begin
>   Gem::GemRunner.new.run args
> rescue Gem::SystemExitException => e
>   exit e.exit_code
> end
> ------------------------------------------------------------------------
>
> My questions are:
> 1. Is this the main RubyGems application?  If it is, can someone explain
> to me the significance of it not having an extension like .rb ?

Think of that as a helper that does a little bit of management and 
starts up the main RubyGems application.  On a Windows system, `gem` is 
called by the `gem.bat` file in the `C:\Ruby192\bin` directory. Since 
`C:\Ruby192\bin` in on your `PATH`, you simply type things like `gem 
list` and things just work. On a Linux system,


> 2. Is RubyGems required for any simple library I would create myself?
> for example, mylibrary.rb
> Or is RubyGems used solely for downloaded gems like RedCloth?

It depends on what you're doing in `mylibrary.rb`. If it's standalone 
with no dependencies on another gem, then probably not.

But more than likely you'll be reusing others code via RG so it's a bit 
of a moot point. And your little library may cleverly be reusing very 
useful RG helpers like `Gem.ruby` or `Gem.win_platform?` or 
`Gem.user_dir`


> 3. If I have a file, test.rb , and the first line of code is:
> require 'rubygems' ,
> what file is it requiring? Is it the 'gem' file in C:\Ruby192\bin ?

Hey, you're missing out on one of the best ways to learn Ruby; 
spelunking Ruby's innards via `irb` or `ripl`.

Try something this and see what you discover :)

C:\>irb
irb(main):001:0> puts $LOAD_PATH
C:/ruby193/lib/ruby/site_ruby/1.9.1
C:/ruby193/lib/ruby/site_ruby/1.9.1/i386-msvcrt
C:/ruby193/lib/ruby/site_ruby
C:/ruby193/lib/ruby/vendor_ruby/1.9.1
C:/ruby193/lib/ruby/vendor_ruby/1.9.1/i386-msvcrt
C:/ruby193/lib/ruby/vendor_ruby
C:/ruby193/lib/ruby/1.9.1
C:/ruby193/lib/ruby/1.9.1/i386-mingw32
=> nil
irb(main):002:0>


Jon

---
Fail fast. Fail often. Fail publicly. Learn. Adapt. Repeat.
http://thecodeshop.github.com | http://jonforums.github.com/
twitter: @jonforums

-- 
Posted via http://www.ruby-forum.com/.