About the main RubyGems application, gem

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 ?

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?

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 ?

Thanks guys!

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

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 :slight_smile:

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/\.

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:
[...]

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 ?

That is the RubyGems wrapper for the RubyGems CLI interface.

That script is called from gem.bat

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?

gem and gem.bat are the CLI of RubyGems

Please see what RubyGems is for:

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 ?

No, is loading RubyGems loading mechanism. It will allow you libraries
distributed as gems using simple "require"

···

--
Luis Lavena

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

Thanks guys!

Hey Luis and other experts, I would really appreciate it if you could be
more specific about certain names. Like CLI, is it the Common Language
Infrastructure?

Anyway, I'll check out the website you gave me.

Thanks a lot.

···

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

Jon Forums wrote in post #1030863:
n 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 :slight_smile:

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>

Hi Jon! I am familiar with IRB and 'puts $LOAD_PATH'. I fail to see
your point. I still don't know what file is being required in:

require 'rubygems'

Is it the rubygems.rb in C:\Ruby192\lib\ruby\1.9.1 ?

If it is, then why is that when I cut it and paste it somewhere else
(e.g. on the Desktop), the program which has the require 'rubygems' code
would still run?

Thanks!

···

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

I don't have context and without context the first thing I would be
thinking of is "command line interface".

Kind regards

robert

···

On Fri, Nov 11, 2011 at 8:36 AM, Kaye Ng <sbstn26@yahoo.com> wrote:

Hey Luis and other experts, I would really appreciate it if you could be
more specific about certain names. Like CLI, is it the Common Language
Infrastructure?

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

With this one email, many of us will not know what prompted this message
of yours. In almost every case where you see "CLI" used in the Ruby
community, however, I rather suspect you'll find it refers to "Command
Line Interface", as Robert Klemme already pointed out.

I made a similar mistaken assumption when I was new to Unix-like
operating systems -- thinking CLI referred to something other than the
shell.

···

On Fri, Nov 11, 2011 at 04:36:36PM +0900, Kaye Ng wrote:

Hey Luis and other experts, I would really appreciate it if you could be
more specific about certain names. Like CLI, is it the Common Language
Infrastructure?

--
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]

-----Messaggio originale-----

···

Da: Kaye Ng [mailto:sbstn26@yahoo.com]
Inviato: venerdì 11 novembre 2011 08:37
A: ruby-talk ML
Oggetto: CLI, what is it?

Thanks guys!

Hey Luis and other experts, I would really appreciate it if you could be
more specific about certain names. Like CLI, is it the Common Language
Infrastructure?

Anyway, I'll check out the website you gave me.

Thanks a lot.

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

--
Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f

Sponsor:
Conto Arancio al 4,20%. Soldi sempre disponibili, zero spese, aprilo in due minuti!
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid920&d)-12

First of all, the version of Ruby you appear to be using (1.9.2) automatically requires in the rubygems file, so you don't need to do it yourself in your scripts unless you want to ensure that they continue to run on older Ruby versions (1.8.x).

If you would like to see where rubygems.rb lives for your Ruby instance, try running the following:

ruby -e "puts $\""

That will print out the list of loaded files, and you should see full path to rubygems.rb in there.

-Jeremy

···

On 11/9/2011 00:23, Kaye Ng wrote:

Jon Forums wrote in post #1030863:
n 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 :slight_smile:

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>

Hi Jon! I am familiar with IRB and 'puts $LOAD_PATH'. I fail to see
your point. I still don't know what file is being required in:

require 'rubygems'

Is it the rubygems.rb in C:\Ruby192\lib\ruby\1.9.1 ?

If it is, then why is that when I cut it and paste it somewhere else
(e.g. on the Desktop), the program which has the require 'rubygems' code
would still run?

-----Messaggio originale-----

···

Da: Stu [mailto:stu@rubyprogrammer.net]
Inviato: sabato 12 novembre 2011 19:08
A: ruby-talk ML
Oggetto: Re: CLI, what is it?

--
Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f

Sponsor:
Conto Arancio al 4,20%. Soldi sempre disponibili, zero spese, aprilo in due minuti!
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=11920&d=29-12