Ramaze
Encyclopedia
Ramaze is a web application framework
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...

 created by Michael Fellinger (also known as manveru) for Ruby
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

. The philosophy of Ramaze is a mix of KISS
KISS principle
KISS is an acronym for the design principle Keep it simple, Stupid!. Other variations include "keep it simple and stupid", "keep it short and simple", "keep it simple sir", "keep it simple or be stupid" or "keep it simple and straightforward"...

 and POLS, trying to make complex things simple and impossible things possible.
This is nothing new to anyone who knows some Ruby, but is often forgotten in the chase for new functionality and features. Ramaze only tries to give you the ultimate tools, but you have to use them yourself to achieve perfect custom-tailored results.
Another goal during development of Ramaze was to make every part as modular, and therefore reusable, as possible, not only to provide a basic understanding after the first glance, but also to make it as simple as possible to reuse parts of the code.
The original purpose of Ramaze was to act as a kind of framework to build web-frameworks; this was made obsolete by the introduction of Rack
Rack (web server interface)
Rack provides a minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between into a single method call.Rack is...

, which provides this feature at a better level without trying to enforce any structural layout of the resulting framework.

History

Development on Ramaze started in the summer of 2006 out of disagreement with the direction of Ruby on Rails
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

. Originally the code of Ramaze was based on its own core but in March 2009 this was replaced by a micro framework called Innate, also developed by the author of Ramaze.

Technical overview

Like many web frameworks, Ramaze uses the Model-View-Controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

 (MVC) architecture pattern to organize application programming. However, due to the way Ramaze works it is very easy to use a completely different structure for your application. In fact,
the possibility to reconfigure the way the framework works is one of the things that make Ramaze different compared to other frameworks. Out of the box Ramaze supports almost any Template Engine, most ORM
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...

s, various adapters (such as Mongrel) and a wide range of loggers (such as Growl). Ramaze also ships with a large variety of helpers for generating forms, authentication, localization and much more.

Example


require 'ramaze'

class MyController < Ramaze::Controller
map '/'

# GET /
def index
"Hello, Ramaze!"
end
end
  1. Various options such as :port can also be specified.

Ramaze.start

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK