RoR

RoR

Ruby on Rails

Ruby on Rails
Ruby on Rails logo.jpg
Rails default index.png
Page d'accueil par défaut
Développeurs David Heinemeier Hansson et la core team[1]
Dernière version 2.3 (le 15 mars 2009) [+/−]
Environnements Multiplate-forme
Type Framework Web
Licence MIT
Site Web www.rubyonrails.com

Ruby on Rails, également appelé RoR ou Rails est un framework web libre écrit en Ruby. Il suit le motif de conception Modèle-Vue-Contrôleur aussi nommé MVC.

Sommaire

Philosophie

Rails est basé sur deux principes fondamentaux :

Ne pas se répéter 
Tenter autant que possible de n'avoir des éléments de l'application qu'à un seul endroit. L'architecture MVC et la métaprogrammation en Ruby rendent cela possible.
Convention plutôt que Configuration 
Il est inutile de préciser des détails lorsqu'ils respectent des conventions établies. Rails exploite cela en proposant des comportements par défaut pour la plupart de ses fonctionnalités. Cette vision sera conservée, même après la fusion avec Merb et la future modularisation du framework.

Au démarrage d'un projet rails, peu d'éléments de configuration sont présents. On trouve généralement que comme le login/mot de passe d'accès à la base de données, incontournable en mysql par exemple. Toutefois on peut commencer un projet sans rien configurer, avec l'utilisation (par défaut) de sqlite. Les fichiers de configuration sont de type YAML

Avant Goût

15 minutes suffisent pour comprendre le buzz que Ruby on Rails génère : Vidéo en anglais

Histoire

La première version de Ruby on Rails date de juillet 2004. Le framework a été extrait de Basecamp[2], un outil de gestion de projets développé par David Heinemeier Hansson.

La première version stable (1.0) est sortie le 14 décembre 2005.

A partir de cette date Ruby on Rails a marqué les esprits. On a vu pousser un ensemble de Framework Web Rails-like (Notamment CakePHP, Symfony et CodeIgniter rien que pour le langage PHP)

Une preview release de la version 2.0 a été annoncée[3] le 30 septembre 2007. Rails 2.0 apporte principalement[3] :

  • les resources qui fournissent une architecture REST ;
  • une différenciation plus claire entre les formats et les convertisseurs (un fichier .rhtml devient un fichier .html.erb, c'est-à-dire un fichier interprété par eruby et dont le résultat est de l'HTML) ;
  • la possibilité d'utiliser des modèles comme URL (par exemple redirect_to(person)) ;
  • la gestion d'authentification HTTP basique ;
  • une protection contre les attaques CSRF ;
  • l'interception plus simple d'exceptions génériques ;
  • le cache du résultat de certaines requêtes SQL ;
  • une simplification de l'écriture de migration ;
  • le déplacement dans des plugins de tous les act_as_* et des modules de base de données propriétaires ;
  • le début de l'abandon de SOAP au profit de REST ;
  • un nouveau système pour le déboguer qui remplace les breakpoints ;
  • et beaucoup d'autres petites modifications.

La dernière version , RoR 2.3 est sortie le 15 mars 2009. Ruby 2.3 apporte l'usage du middleware Rack : qui permet de gérer des requêtes de niveau serveur, et intègre un reverse proxy. L'autre modification importante est la gestion des formulaires enfants d'un objet parent (nested form)

Cette dernière est la préparation de Rails 3.0 prévu mi-2009. Rails-3 est en fait la rencontre entre Rails et Merb, dont la force est d'être agnostique.

L'architecture Modèle-Vue-Contrôleur

Rails fournit des outils pour construire une architecture MVC :

  • Les modèles sont les classes assurant la gestion des données. En général la structure de ces classes est déterminée automatiquement par Rails à partir d'une base de données. Les relations entre les tables sont explicitement spécifiées (has_many belongs_to). Spécifier ces relations permettent à ActiveRecord de précharger des éléments de classes enfants ou parent.
  • Les vues déterminent comment sont affichées les informations à l'utilisateur. Il s'agit généralement d'une combinaison de code HTML et de Ruby dans des fichiers .html.erb. Il est aussi possible de les programmer en Ruby pur avec Builder[4]. Enfin il existe une multitude de plugins de systèmes d'écriture de HTML simplifié, le plus connu est le HAML
  • Les contrôleurs réagissent aux actions des utilisateurs, ils vont chercher les données dans la base et les mettent à disposition aux vues.

Rails permet de créer rapidement des squelettes d'un contrôleur ou d'un modèle ou d'une vue. Il s'agit généralement de code de type échaffaudage ( ou scaffold) qui assurent des opérations courantes sur le modèle comme l'ajout, la modification et la suppression d'enregistrements. Ces bouts de codes initiaux sont parfaitement adaptables aux besoins spécifiques de l'application.

Rails propose également ActionMailer pour la gestion d'envoi ou réception de courriels et ActionWebService pour SOAP et XML-RPC, ainsi que ActiveRessource pour une interrogation par Web Service de type RESTful

Rails et Ajax

AJAX permet de réaliser des pages dynamiques avec Javascript et XML pour envoyer des requêtes au serveur sans recharger la page dans le navigateur. Rails offre plusieurs méthodes afin de simplifier l'utilisation d'AJAX[5]. L'apport des RJS est de permettre la génération de code javascript à destination du navigateur par l'intermédiaire de ligne ruby.

Serveur Web

Rails peut fonctionner avec WEBrick, le serveur HTTP fourni avec Ruby. Cette méthode est souvent utilisée pour le développement et les tests. En production, Apache ou lighttpd avec Mongrel ou thin sont recommandés.

L'usage de FastCGI n'est plus recommandé à partir de la release 2.3. En effet la bibliotèque initiale mod_ruby avec Apache a été retravaillée, et l'interface avec Apache utilise maintenant Passenger[6].

Gestion de emails (envoi et reception)

Les mails sont générés au niveau des vues. On peut ainsi créer une vue au format texte, et une vue HTML, envoyé dans le même mail.

La gestion des pièce jointe est aussi supportée et facile d'emploi.


En ce qui concerne la gestion des mails entrants, il est possible de créer un utilisateur virtuel dans Postfix ou sendmail . Mais le plus aisé est de contrôler une boite mail par IMAP avec la bibliotèque native de ruby. La gestion des pièces jointes des mails entrants utilise le même principe que les mails générés.

ActionMailer API - anglais

Bases de données

Plusieurs systèmes de gestion de base de données sont supportés : SQLite, MySQL, PostgreSQL, DB2, Oracle et Microsoft SQL Server.

Par défaut, SQLite3 est utilisé.

Distribution

Ruby on Rails est distribué par RubyGems: gem install rails[7]. Le code source est également disponible par git[8].

La distribution Instant Rails[9] propose une version pré-configurée pour Microsoft Windows de Ruby, Rails, Apache et MySQL.

Le projet Locomotive[10] propose une installation simplifiée pour Mac OS X. Mais RoR est inclus dans les versions client et serveur de Mac OS X 10.5[11].

Ruby on Rails est également inclus dans de nombreuses distributions Linux.

Éditeurs

L'éditeur de texte TextMate est utilisé (sous système Mac OS X) par les développeurs principaux de Ruby on Rails[12].


Alternativement Aptana et plus récemment NetBeans propose également des fonctionnalités utiles pour développer et debugger avec Ruby on Rails[13].

3rdRail est l'IDE de CodeGear pour Ruby On Rails[14].

Enfin, en mode console, des plugins pour l'éditeur de texte Vim permettent d'y ajouter des fonctionnalités utiles pour développer en Ruby on rails [15]

Voir aussi

Articles connexes

Bibliographie

  • Lucas Carlson, Leonard Richardson, Ruby par l'exemple, 2006 (ISBN 978-2-84177-347-3) 
  • Eric Sarrion, Pratique de Ruby On Rails, 2006 (ISBN 978-2-84177-388-6) 

Liens externes

Notes et références

  • Portail des logiciels libres Portail des logiciels libres
Ce document provient de « Ruby on Rails ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article RoR de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • RoR — ist die Abkürzung für Rhythms of Resistance, ein Netzwerk politischer Trommelgruppen Ruby on Rails, ein Framework für die Web Applikations Entwicklung ROR steht für: Flughafen Koror, IATA Code des Flughafens auf Palau …   Deutsch Wikipedia

  • ROR — UK US noun [C] ACCOUNTING, FINANCE ► ABBREVIATION for RATE OF RETURN(Cf. ↑rate of return): »Use this spreadsheet to calculate the ROR on adjustable rate mortgage securities …   Financial and business terms

  • ror — sb., et, ror, ene; til rors …   Dansk ordbog

  • ROR — ist die Abkürzung für Rhythms of Resistance, ein Netzwerk politischer Trommelgruppen Ruby on Rails, ein Framework für die Web Applikations Entwicklung …   Deutsch Wikipedia

  • ROR — abbr. =>> release on own recognizance. Webster s New World Law Dictionary. Susan Ellis Wild. 2000 …   Law dictionary

  • ror — |ô| s. m. [Popular] Grande quantidade; multidão …   Dicionário da Língua Portuguesa

  • ror — rȏr m <N mn rórovi> DEFINICIJA reg. 1. cijev, kojom dim prolazi do dimnjaka, s jedne strane pričvršćena za štednjak, a s druge u zid; čunak, sulundar 2. pećnica ETIMOLOGIJA njem. Rohr: cijev …   Hrvatski jezični portal

  • røræg — rør|æg sb., gen el. get (en madret) …   Dansk ordbog

  • Ror — Infobox caste caste name=ROR classification=Kshatriya subdivisions=Chaurāsi, Bānggar, Khāddar, Nardak populated states=Haryana, Sindh, Gujarat, Rajasthan, Uttar Pradesh, Uttarakhand languages=Hindi, Haryanvi, Khariboli religions=HinduismThe Ror… …   Wikipedia

  • ror — er·ror; er·ror·ist; er·ror·less; fu·ror; jat·ror·rhi·za; jat·ror·rhi·zine; ju·ror; ma·ror; mir·ror·scope; ror·qual; ror·schach·er; ror·ty; sau·ror·ni·thes; so·ror·i·cide; so·ror·i·ty; ter·ror·ful; ter·ror·ism; ter·ror·ist; ter·ror·iza·tion;… …   English syllables

  • rør — I rør 1. rør sb., et, rør, ene II rør 2. rør: stå rør; rør! …   Dansk ordbog

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”