SHANTI - Sciences, Humanities, and Arts Network of Technological Initiatives

Ruby on Rails / Profile

Home Page: http://rubyonrails.org/

Download Page: http://rubyonrails.org/download

Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. It consists of two components: “Rubygems” and “Rails”. Rubygems are the elements of the Ruby language, while Rails provides scaffolding, or framework.

General Associations
Basecamp (1), Rails (1), RoR (1), Ruby (1), RubyonRails (1), e-commerce (1), framework (1), interactive (10), internet (4), productivity (2), programming (1), rapid development (1), script (2), software engineer (1), user interface (5), web (7), web design (1), web-based (9), website development (1)

Notes on License

Open-source

Cost

Ruby on Rails is Free.

Features

  • Convention over Configuration (CoC): only need to specify unconventional aspects of app.
  • Don’t Repeat Yourself (DRY): optimized coding so system knowledge doesn’t have to be reitterated.
  • Fat Model, Skinny Controller: most of the app logic is contained in the models rather than controllers.
  • Extensive support for REST patterns: common pattern for webapps, RoR supports this by default.
  • Integrated Testing Framework: helps the programmer integrate new features or refactor code; enables programmer to immediately know if recoding has broken any functionality.
  • Automated Tasks: many common tasks are reduced to one line in the console.

Version and Plans

Version History: extracted from Basecamp, released as Rails (2004), RubyonRails, packaged with Mac OSX v10.5 “Leopard” (Oct, 2007)

Interface Languages
English (416)

Reviews

. (last updated July 2, 2009)

David Hanemeier Hannson, 07-05-05 (scaling in RubyonRails): link 

Technical Details

Like many contemporary web frameworks, Rails uses the Model-View-Controller (MVC) architecture pattern to organize application programming.

Ruby on Rails features several tools intended to make commonplace development tasks easier “out of the box”. Rails providesscaffolding which can automatically construct some of the models and views needed for a basic website. A simple ruby web server (WEBrick) and Rake build system are also included. By including these common tools with the Rails framework, a basic development environment is in effect provided with all versions of the software.

Ruby on Rails relies on a web server to run it. Mongrel is generally preferred over WEBrick at the time of writing but it can also be run byLighttpd, Apache (either as a module – Passenger for example – or via CGI, FastCGI or mod_ruby), and many others.

Rails is also noteworthy for its extensive use of JavaScript libraries Prototype and Script.aculo.us for Ajax. Rails initially utilized lightweight SOAP for web services; this was later replaced by RESTful web services.

Since version 2.0, Ruby on Rails by default offers both HTML and XML as output formats. The latter is the facility for RESTful web services.

Framework structure

Ruby on Rails is separated into various packages, namely ActiveRecord (an object-relational mapping system for database access),ActiveResource (provides web services), ActionPack, ActiveSupport and ActionMailer. Prior to version 2.0, Rails also included the Action Web Service package which is now replaced by Active Resource. Apart from standard packages, developers can make plugins to extend existing packages.

Philosophy and design

Ruby on Rails is intended to emphasize Convention over Configuration (CoC), and the rapid development principle of Don’t Repeat Yourself (DRY).

“Convention over Configuration” means a developer only needs to specify unconventional aspects of the application. For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table “products sold”, that the developer needs to write code regarding these names. Generally, this leads to less code and less repetition.

“Don’t repeat yourself” means that information is located in a single, unambiguous place. For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database based on the class name.

Technologies of Interest
ActiveRecord (1), CoC (1), Configuration (1), Convention (1), Convention over Configuration (1), DRY (1), Don't Repeat Yourself (1), HTML (3), Multiple Outputs (1), WEBrick (1), XML (10), class definition (1), class name (1), code (1), database (1), object-relaitonal mapping system (1)

Developer Resources

Smashing Magazine

Mailing List

Google Groups

Contribute patch

Prototype and script.aculo.us

Security announcements

Discussion Forums / User Groups

Nabble

Tutorials/Training

O’reilly (Part 1)

O’reilly (Part 2)

Four Days on Rails

Slash7

Rails Wiki

Fast-track Webapps 

O’reilly

Many-to-many PDF

Distributing Rails Applications: link

Installing with Lighttpd and MySL on Fedora Core 4:link

Ruby on Rails Screencasts

 

Tips

Smashing Magazine

Free Ruby on Rails screencasts (over 150 casts!)

More Information

Documentation

Weblog