# Programmation Ruby/Premiers essais
## Introduction et installation

* Introduction
* Installation
* Premiers essais

## Syntaxe et types

* Syntaxe, Portée, Types
* Expressions de contrôle et boucles
* Types standards
* Conteneurs

## Programmation orientée objet

* Les classes
* Les méthodes
* Les accesseurs
* Héritage
* Les exceptions
* Les mixins
* Les modules

## Utiliser Ruby

* La bibliothèque standard (stdlib)
* Ruby et le texte non structuré
* Programmation concurrente
* Programmation distribuée
* Persistance des données
* Bases de données et ORM
* Ruby et le Web
* Programmation Ruby/Manipuler des fichiers
* Ruby et les services
* Des interfaces graphiques avec Ruby
* Réflexion
* Exemples de code

## Pour les programmeurs...

* Pour les programmeurs Java
* Pour les programmeurs Python
* Pour les programmeurs PHP

## Outils autour du langage

* Interactive Ruby Shell
* Le débuggueur
* Le profileur
* Les tests unitaires
* La documentation
* Le packaging (gems)
* Rake
* Étendre Ruby
* Les différentes implémentations du langage

## Références

* Mots Réservés
* Variables globales prédéfinies
* Caractères d'échappements
* Webographie

## Introduction et installation

* Introduction
* Installation
* Premiers essais

## Syntaxe et types

* Syntaxe, Portée, Types
* Expressions de contrôle et boucles
* Types standards
* Conteneurs

## Programmation orientée objet

* Les classes
* Les méthodes
* Les accesseurs
* Héritage
* Les exceptions
* Les mixins
* Les modules

## Utiliser Ruby

* La bibliothèque standard (stdlib)
* Ruby et le texte non structuré
* Programmation concurrente
* Programmation distribuée
* Persistance des données
* Bases de données et ORM
* Ruby et le Web
* Programmation Ruby/Manipuler des fichiers
* Ruby et les services
* Des interfaces graphiques avec Ruby
* Réflexion
* Exemples de code

## Pour les programmeurs...

* Pour les programmeurs Java
* Pour les programmeurs Python
* Pour les programmeurs PHP

## Outils autour du langage

* Interactive Ruby Shell
* Le débuggueur
* Le profileur
* Les tests unitaires
* La documentation
* Le packaging (gems)
* Rake
* Étendre Ruby
* Les différentes implémentations du langage

## Références

* Mots Réservés
* Variables globales prédéfinies
* Caractères d'échappements
* Webographie
[ Modifier le sommaire ]
Pour faire les premiers essais avec Ruby, nous allons utiliser l'outil irb, un interpréteur Ruby très pratique pour tester et déboguer.
Pour le lancer sous Windows un raccourci a été défini au chapitre précédent, et avec Unix à partir d'un terminal via la commande irb :
Pour ne pas déroger à la règle, nous allons pour premier exemple dire bonjour :
Ceci renverra :
soit l'effet produit par notre fonction (l'affichage de la chaîne "Hello World"), et la valeur de retour de celle-ci, dans notre cas nil.
Pour un langage objet, cet exemple n'est pas très adapté. Il faut néanmoins savoir que tout code écrit en dehors d'une classe ou d'un module fait partie de la classe Object.
On aurait également pu écrire cet exemple de cette manière :
L'approche objet est ici plus évidente : la méthode "<<" de l'objet STDOUT est appelée avec « "Hello" << " " + "World" » comme paramètre. De même on appelle la méthode "<<" de l'objet « "Hello" » (qui est une instance de l'objet String).
On découvre ici le modèle tout objet de Ruby. En effet, celui-ci ne comporte pas de type primaire, ainsi, une chaîne de caractères ou un nombre sont des objets, comme on peut le voir avec la méthode Object.class :
Bien sûr, chacun de ces objets possède ses propres méthodes, que l'on peut lister ainsi :
ou encore dans un contexte précis :
On constate certaines particularités syntaxiques ; nous les détaillerons plus tard même si elles sont assez claires ; par exemple une méthode dont le nom se termine par "?" indique que celle-ci renvoie un booléen.
Pour plus d'informations sur un objet ou une méthode, vous pouvez, à partir d'un terminal, exécuter la commande « ri » :
Si une méthode est incluse dans plusieurs objets, « ri » vous proposera une liste de choix possibles.
Toute méthode peut être redéfinie :
Toutes les méthodes peuvent ainsi être redéfinies, cependant, cette fonctionnalité est à utiliser avec précaution.
Pour finir cette présentation nous allons voir la notion de bloc en Ruby, et voir comment ceux-ci peuvent être utilisés. Par exemple :
Ici nous voyons que le bloc délimité par do et end (Il est à noter que l'on peut également délimiter les blocs par des accolades ouvrantes et fermantes { } ) est envoyé en paramètre à la méthode times de l'objet Fixnum. Les valeurs entre pipes (ici la variable i) indiquent les paramètres que la méthode passe au bloc. Ici, la méthode times va donc appeler 5 fois le bloc en y passant en paramètre un entier valant au départ 0 et qui sera incrémenté de 1 à chaque appel du bloc.
Tous ces concepts seront vus en détail dans les chapitres suivants.