tags:

views:

1454

answers:

6

I'm not sure of all of them, but what are the commands to do things like update Ruby, download a new gem, or update an existing gem? What other important things are there?

Since it might matter, I'm running Windows.

+9  A: 

By Ruby commands you probably mean the command line programs for Ruby. These are also called Ruby Helper programs. Here are a few:

  • ruby - The interpreter itself. Run Ruby scripts or statements.

  • gem - Ruby Package Manager. Great for automatically downloading or updating small Ruby modules like XML libraries, web servers, or even whole Ruby programs.

  • irb - Interactive Ruby Prompt. This is an entire Ruby shell that will let you execute any Ruby code you want. You can load libraries, test code directly, anything you can do with Ruby you can do in this shell. Believe me, there is quite a lot that you can do with it to improve your Ruby development workflow [1].

  • ri - Quick shell access to Ruby documentation. You can find the RDoc information on nearly any Ruby Class or method. The same kind of documentation that you would find on the online ruby-docs.

  • erb - Evaluates embedded Ruby in Ruby Templated documents. Embedded Ruby is just like embedding php into a document, and this is an interpreter for that kind of document. This is really more for the rails crowd. An alternative would be haml.

  • rdoc - Generate the standard Ruby documentation for one of your Ruby classes. Its like Javadocs. It parses the Ruby source files and generates the standard documentation from special comments.

  • testrb and rake. I'm not familiar enough with these. I'd love it if someone could fill these in!

Hopefully this was what you were looking for!

Joseph Pecoraro
+1  A: 
sudo gem install gemname
sudo gem update gemname
John Topley
A: 

@John Topley: Thanks. Is there a similar command to update Ruby itself?

Not really. You don't say which operating system you're using. I use Mac OS X and tend to build Ruby from source.

John Topley
+1  A: 

Okay. I see what you're going for but again try to go abstract because I know someone will give you a direct answer (which people should up-vote over this).

Everyone should get comfortable with man pages. But even if you are, you'll find that these commands lack decent man pages. However, those that do will point you to cmd --help and you will find some decent documentation there. I linked each of the commands above to a hopefully useful resource that will lead you to an answer if you're worried about command line switches. I see someone already posted the commands so I won't repeat those for gem. But I'd go further and say:

sudo gem update [gemname]

The default behavior will update all installed gems.


Also, as a bonus there is a neat gem called cheat. The idea is that instead of typing man cmd you will type cheat cmd and you can get a community editable man page for that command. Or better yet, it doesn't have to be a command, it can be an entire topic. Coincidentally to install cheat you would do:

sudo gem install cheat

And then:

cheat gem

That will list out a "man page" written by users like you about the gem command. The commands that you asked for are on that page. Anyone can add new pages, update existing pages, and contribute to the community. If you're interested here is a quick addition you can make to have autocompletion for the cheat command from the command line.

I know I have long winded answers ;)

Joseph Pecoraro
+1  A: 

Is there a similar command to update Ruby itself?

Alas, no there is not. I'm afraid that if you want to update Ruby itself you will have to either download an installer from the Ruby website, or compile it from source.

I should mention though that compiling from source is very easy and offers developers quite a bit of neat flexibility. You can add a suffix to the generated commands so that you can have standalone Ruby 1.8 and Ruby 1.9 builds both at the same time. That can be very helpful for testing.

Finally, its always a danger to update an operating systems built in commands unless it occurs through an official update. Installed applications may be expecting to a Ruby 1.8 in the standard location and crash if they meet an updated version. Any updates you make should just not overwrite one that came with an OS. (If any app crashes then its the fault of the app's developers for not specifying the absolute path to the OS version).

Joseph Pecoraro
+5  A: 

Useful command: Rake

In addition to the commands listed by Joseph Pecoraro, the 'rake' command is also pretty standard when working with Ruby. Rake makes it easy to automate (simple) tasks; like building a RubyGem or running your unit tests.

With rake, the only important command to remember is 'rake -T', which shows a list of rake tasks available in the current directory.

Updating a Ruby gem

To get back to your specific question:

To update a specific gem, you can do two things: simply update the gem:

gem update <gemname>

This will update the gem to the latest version.

Install a Ruby gem

If you want to update to a specific version, you must install it:

gem install <gemname> -v <gemversion>

You can leave out the -v options. Rubygems then installs the latest version.

How to help yourself

Two useful gem commands to remember are:

gem help

This shows how to get help with rubygems.

gem help commands

This shows all commands available to rubygems. From here you can get more specific help on a command by using gem help:

gem help update
Wes Oldenbeuving