Friday 5 December 2014

Difference Between Gem and Rails Engine

An Engine in rails terminology is a actually a sub-application of a web-application. For instance, something like a blog, a forum, or simple authentication: these are not full-blown applications, but pages/views/controllers/models that can be added to any rails application.
 gem is a ruby library, which can be found on http://rubygems.org and it is the standard (only) way to package and distribute ruby code to other ruby programmer. 
So we say:
  • A gem: is a generic library, which can be easily installed, which are version-managed, have dependencies and such.
  • An engine: is a sub-application of a Rails application, and since Rails 3 these are distributed as a gem.
So when will you use one or the other:
  • create a gem if you want to share ruby-functionality
  • create an engine (and package it in a gem) if you have parts of your rails application that can be used more generally.

No comments:

Salesforce CRM vs. Zoho: A Comparative Analysis

Introduction: Selecting the right customer relationship management (CRM) software is crucial for businesses seeking to streamline their sal...