A gem is a packaged Ruby application or library. It has a name and a version and have a specific task. Based on your requirement you may embed them into your application codes.
Gems are managed on your computer using the gem command. You can install, remove, and query gem packages using the gem command.
RubyGems is the name of the project that developed the gem packaging system and the gem command. You can get RubyGems from the RubyForge repository http://rubyforge.org/frs/?group_id=126
It installs the required library files and the gem command. This command gives us the power to do many things.
In a shortcut version at CLI we may use
q for query
r for remote
l for local
n for name
spec for specification
Listing remotely installable gems
gem query –remote
Searching remotely installable gems
gem query –remote –name-matches doom
# shortcut: gem q -R -n doom
Installing a remote gem
gem install –remote progressbar
gem ins -r progressbar-0.0.3
gem ins -r progressbar –version ‘> 0.0.1?
RubyGems allows you to have multiple versions of a library installed and choose in your code which version you wish to use.
Looking at an installed gem
gem specification progressbar
Listing all installed gems
gem query –local
remote or local
If you don’t specify either of these, then gem will (usually) try ’’both’’ a local and remote operation. For example:
gem ins rake # Attempt local installation; go remote if necessary
gem list -b ^C # List all local AND remote gems beginning with “C”
Coding With RubyGems
and then subsequently
bar = ProgressBar.new(”Example progress”, 50)
The first line of the program requires the progressbar library file. RubyGems will look for the progressbar.rb file in the standard library locations. If not found, it will look through its gem repository for a gem that contains progressbar.rb. If a gem is used, RubyGems attempts to use the latest installed version by default.
gem install –remote rake –version “0.4.14?
gem update –system
gem install rubygems-update
Uninstalling a gem
gem uninstall progressbar
Info extracted from : http://rubyforge.org/