tagline: From openSUSE
What is Ruby?
Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
He has often said that he is “trying to make Ruby natural, not simple,” in a way that mirrors life.
Building on this, he adds:
Ruby is simple in appearance, but is very complex inside, just like our human body.
(Copied from here)
Ruby was designed as a general-purpose scripting language, and thus has a wide support for a number of different applications. It has been used across the board for everything from web applications, to web servers themselves, to intelligent graphing libraries, to picture recognition engines, to threaded database servers, to low-level system utilities. It has a wide spectrum of use throughout computing.
Rails has most certainly boosted the popularity of Ruby by a huge amount, brought it up into the forefront of scripting languages, spawning 40+ books, 18 conferences, distribution with nearly all the major operating systems and 7 different implementations to boot!
To begin with, all of Rails' internals are written in Ruby itself, but all of the Rubygems, libraries, snippets or anything else that is used by Rails developers is written in Ruby too, and is most likely built to work outside of the Rails stack.
Having said that, the popular web framework is not the reason why Ruby is popular. Sure, it has helped bring much-needed attention to the language, but it's not the reason why people use it day to day. It's used for everything from web applications to desktop GUI applications because of it's simple, elegant syntax, it's clean, sensible and complete standard library, it's wide ecosystem of community code, support and toolchains.
Ruby is used because it rocks.
Ruby and rubygem packaging
openSUSE 13.1 and older
Up to openSUSE 13.1 the Ruby language was packaged as multiversion -- you could install multiple versions (like 1.9 and 2.0) in parallel. However, this was not extended to the rubygems, so the usability of multiversion was limited.
Internally, the Ruby interpreter was packaged as 'ruby19', 'ruby20', and 'ruby21'. The 'ruby' package only contained symlinks to the actual binaries. This packaging scheme was not easy to maintain.
openSUSE Factory after 13.1
After openSUSE 13.1, the 'ruby' package contains the Ruby language interpreter itself again.
Details about the Ruby packaging are explained here
rubygem packaging with Ruby 2.1
rubygems 2.1 changed the internal directory layout for installed (binary) gems. When packaging gems as RPM packages you must use the latest gem2rpm tool to create the .spec file.