TOTD #6: Difference between Ruby Gem and Rails Plugin
As a newbie to Rails, "Gem" and "Plugin" terminology was slightly confusing to me. Specifically I saw the terms being used interchangeably sometimes. This TOTD highlights the difference between Ruby Gem and Rails Plugin.
Ruby Gem and Plugin are both packaging systems - the main difference is the scope in which they are effective. The common differences are highlighted in the table below.
| Topic | Ruby Gem | Rails Plugin |
| Definition | A Gem is a packaged Ruby application using the packaging system defined by RubyGems. | A Rails plugin is a packaged Ruby application that extends the core Rails framework. |
| Example | Has a name (e.g. rake) and a version (e.g. 0.4.16). Rails is also installed as a Gem. | Has a name (e.g. Goldspike) and a version (e.g. 1.1.1). |
| Scope | Installed in the Ruby or JRuby installation and is available to all applications run using that interpreter. | Installed in a specific Rails app only. |
| Packaging System | Rails gem is installed in
jruby-1.0\lib\ruby\gems\1.8\gems\rails-1.2.3 as:
The |
Goldspike plugin is installed in
vendor\plugins\rails-integration directory of the application as:
The |
| Management | Gems are managed on your computer using the gem command. You can install, remove and query gem
packages using the gem command. |
Plugins can be installed using after creating a Rails application and then
invoking the command |
| Load Path | gem command adds the lib
directory of your gem to the load path of Ruby. |
Rails adds the lib directory of plugin in
your application's load path. |
| Specific Features |
|
|
| Publish Format | A Gem may be published as Plugin, for example ActiveRecord-JDBC. | A Plugin cannot be published as Gem. |
Here are some useful entries (with numerous pointers on screencasts, blogs, tips & extensive feature sets) to get you started with JRuby:
Are there any other main differences that I missed ?
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: totd rubyonrails rubygem railsplugin netbeans glassfish
- Login or register to post comments
- Printer-friendly version
- arungupta's blog
- 903 reads





