Penguin

Ruby on Rails is an MVC framework for programming web applications in Ruby, made up of several components:

  • ActiveRecord, an ORM library that represents your Models in the MVC pattern
  • ActionPack, which provides the View, and Controller parts of MVC. The views use ERb, or "Embedded Ruby"
  • ActiveWebService, which allows you to provide SOAP and XMLRPC? services integrated into your controllers
  • ActiveSupport, which provides many small niceties, and overrides core Ruby objects to provide things like:

    • 5.days432000 (Along with hours, fortnight(s), months, years etc. and kilo, mega, giga, tera-bytes etc.)
    • "person".pluralise"people" (Also singularise to do the opposite)
    • And lots and lots of other language features, that arguably should be in Ruby anyway (such as Object.tap, Symbol-to-proc, returning "" do ... end)

  • ActionMailer, which sort-of also provides the View part of MVC but for sending (and also receiving) Emails

The Rails core code provides the "glue" for all these components.