Présentation de Ruby
Vous souhaitez avoir une vue rapide de Ruby ?En attendant une présentation plus complète, voir le Guide de survie Ruby
Documentation générales
-
Wikipedia: Ruby
(http://fr.wikipedia.org/wiki/Ruby)
(26/11/2008)
Trés bonne présentation synthétique du langage.
Voir aussi la version EN -
Wikipedia: Programmation_Ruby
(http://fr.wikibooks.org/wiki/Programmation_Ruby)
(25/10/2011)
Présentation olus détaillé mais incomplète du langage.
Voir aussi la version EN -
wikibooks: Programmation Ruby
(http://fr.wikibooks.org/wiki/Programmation_Ruby)
(27/03/2010)
(En construction) doc sur la programmation en Ruby. -
Wikipedia: Ruby on Rails
(http://fr.wikipedia.org/wiki/Ruby_on_Rails)
(26/11/2008)
Ruby on Rails est un framework de développement de site web trés réputé -
Ruby (présentation à approche du langage)
(http://patrick.davalan.free.fr/rsnip/rubyquest.html)
(18/01/2009)
Approche selon l'auteur du langage (Selon Yukihiro Matsumoto dit 'Matz') et selon la FAQ ruby -
Ruby (introduction)
(http://www.mangue.org/wiki/Ruby)
(24/11/2008)
Un bonne présentation en 19 pages (!! N'existe plus => voir version locale ensta) -
Je veux apprendre Ruby
(http://jeveuxapprendreruby.fr)
(21/06/2012)
Liste des meuilleurs doc/outils pour apprendre Ruby -
Programming Ruby: the pragmatic programmer's guide
(http://phrogz.net/ProgrammingRuby)
(24/11/2008)
Un livre gratuit en ligne (version beaucoup plus récente en vente) -
Encountinering Ruby
(http://www.arachnoid.com/ruby/)
(28/11/2008)
Trés bonne présentation également -
What is ruby? A user guide.
(http://www.rubyist.net/~slagell/ruby)
(31/01/2012)
TB présentation détaillée des fonctionnalités de Ruby (copie locale ensta).
TODO : en faire un TUToriel français imprimable (mono-fichier) -
QuickRef.html
(http://www.zenspider.com/Languages/Ruby/QuickRef.html)
(24/11/2008)
Un pense-bête mono fichier -
snippets
(http://snippets.dzone.com/tag/ruby)
(29/03/2009; 31/01/2012)
Morceaux de code avec moteur de recherche (essentiellement Ruby) -
Learn Ruby The Hard Way
(http://ruby.learncodethehardway.org/book)
(27/10/2011)
Apprendre Ryby via des exercices et des exemples -
pleac_ruby
(http://pleac.sourceforge.net/pleac_ruby)
(24/11/2008)
Plein de morceaux de code Ruby (sur le modèle d'un livre en Perl) -
Ruby Best Practice
(http://blog.rubybestpractices.com)
(31/10/2009)
Un blog de conseils généraux (voire dépasant l'intérêt pour Ruby -
The Ruby Language FAQ
(http://www.cs.auckland.ac.nz/references/ruby/doc_bundle/FAQ/FAQ.html)
(31/01/2012)
Une Faq un peu fourre-tout mais très intéressante (maintenue par Dave Thomas).
Gestionnaire de construction/distribution de package
-
Buildr : le gestionnaire de projet java vu par Apache
(http://buildr.apache.org)
(11/12/2011)
Ce gestionnaire de projets java, scala, ... remplace directemenet (et surpasse) Maven 2 et s'appuyant sur Rake (nécessite JRuby)
Voir aussi la présentation en français de Buildr par Jean-Philippe Caruana -
Rubygem : le gestionnaire de distribution de package ruby
(http://www.rubygems.org/)
(26/11/2008)
Equivalent à apt dans le monde debian ou à yum dans le monde redhad -
Rake
(http://rake.rubyforge.org/)
(13/12/2008)
L'outil de construction pour le monde Ruby (equivalant à un super make -
Rake-compiler
(http://github.com/luislavena/rake-compiler)
(07/12/2008)
Facilite la création d'extensions Ruby multiplateforme (basé sur Rake) -
Monkeybars
(http://monkeybars.rubyforge.org/)
(13/12/2008)
Un framework VMC pour construire des applications (non web) en JRuby et inspiré de Ruby on Rails -
Rawr
(http://rawr.rubyforge.org/)
(13/12/2008)
Un outil multiplateforme de déployment pour projet Jruby basé sur Rake. Génére une application jar, ou une application .app pour osx, ...
Ruby et les autres langages
-
Différences entre Ruby et Python
(http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/)
(01/02/2009)
Ça c'est une comparaison neutre. Plus tard, je vous dirai pouquoi moi, je n'aime pas Python... -
Adapter une bibliothèque C pour Ruby
(http://blog.developpez.com/zik/p9266/ruby/adapter-une-bibliotheque-c-pour-ruby-1)
(27/10/2010)
Tutorial en 5 parties de xxx pour créer une extension à Ruby permettant d'accéder à une bubliothèque C existante (en l'occurence Taglib pour accéder au tag audio). -
FFI Foreign Function Interface Interface Ruby pur pour bibliothèque C
(http://github.com/ffi/ffi/wiki)
(27/10/2010)
Interface Ruby pur (i.e. sans compilation) pour accéder à une bibliothèque C existante -
Rice : interface Ruby et C++
(http://rice.rubyforge.org/)
(05/03/2009)
Rice utilise et étend le système standard d'extension de ruby (ecrit en C) pour faciliter son usage avec le C++ -
RubyInLine
(http://www.zenspider.com/ZSS/Products/RubyInline)
(03/04/2009)
Permet l'intégration à la volée de C ou C++ dans du code Ruby.
Le page de téléchargement propose également l'outil InlineFortran. -
RVM: Ruby Version Manager
(http://beginrescueend.com)
(28/10/2011)
RVM permet de jongler facilement avec plusieurs versions de ruby ainsi que leur gems associés
Bibliothèques scientifiques
Cette section est appelée à être fortement développée !-
Sciruby: Tools for Scientific Computing in Ruby
(http://sciruby.com)
(09/05/2009)
Scuruby : LE projet en cours autour de ruby scientifique
-
geokdtree : structure de kdTree avec manipulation de coordonnées géographiques
(http://rubygems.org/gems/geokdtree/)
(23/02/2013)
Fait appel à une extension native (incluse dans le gem), mais s'installe tout seul. -
iGraph : interface à la bibliothèque C de graphes igraph
(http://igraph.rubyforge.org/igraph/)
(09/05/2009)
Bas niveau mais orienté efficacité -
linalg: Ruby Linear Algebra Library
(http://linalg.rubyforge.org/)
(20/10/2009)
Bibliothèque d'algèbre basée sur Fortran -
Rnum: Ruby Numerical Library
(http://rnum.rubyforge.org)
(20/12/2008)
Bibliothèque d'algèbre linéaire basée sur Blas et Lapack -
NArray:
(https://github.com/princelab/narray/wiki/Tentative-NArray-Tutorial)
(03/11/2011)
manipulation vectorielle en ruby : ancienne bib. en cours de réécriture en vue d'une intégration à SciRuby -
NMatrix: Matrix Numerical Library
(https://github.com/sciruby/nmatrix/wiki)
(17/01/2013)
Le remplaçcant de Narray en cours de développemenet pour intégration à SciRuby -
Priority-queue: An efficent priority queue implementation
(http://rubyforge.org/projects/priority-queue)
(17/01/2013)
Version ruby et C d'une file de priorité (la home page est innaccessible, mais le code est dispo). Propose des benchmark, une démo par l'algo de Dijkstra. La version 0.1.2 date de 2005. -
rglpk : interface Ruby to Glpk (based on Swig)
(http://rglpk.rubyforge.org/)
(02/02/2009)
Glpk est une bibliothèque C de programmation linéaire et en nombres entiers -
rb-gsl : interface à la Gnu Scientific Library
(http://rubyforge.org/projects/rb-gsl)
(15/11/2011)
En couvrant beaucoup de domaines du calcul scientifique, la GSL se développe lentement mais surement. Voir l'accès direct (fragile) à la exemples rb-gsl -
rubytree : A General Purpose Tree Data Structure for Ruby
(http://rubytree.rubyforge.org/rdoc)
(17/01/2013)
implémente une structure générique d'arbre, ... (à compléter) -
RinRuby : autre interface au langage R (plus récente aue rsruby et 100% ruby)
(https://sites.google.com/a/ddahl.org/rinruby-users/)
(05/11/2011)
Simple à installer, un script 100% ruby d'interfaçage avec une distribution R standard (RinRuby pdf paper) -
ruby-gsl : (une autre) interface à la Gnu Scientific Library
(http://ruby-gsl.sourceforge.net)
(16/06/2009)
TODO : faire un point pour comparer avec l'autre bibliothèque gsl... -
mpi-ruby : interface ruby pour MPI
(https://github.com/abedra/mpi-ruby)
(02/02/2012)
Version spécifique de rubympi_rubyqu'on utilise par :
mpirun -np 5 mpi_ruby my-mpi-prog.rb -
ruby-mpi : interface ruby pour MPI
(https://github.com/seiya/ruby-mpi)
(02/02/2012)
Une simple gem utilisant un reuby standard :
mpirun -np 2 /usr/local/bin/ruby hello_mpi.rb -
rsruby : interface au langage R (gnu) ou S
(http://rubyforge.org/projects/rsruby)
(09/05/2009)
Du même auteur que l'interface iGraphe -
bioruby : Open source bioinformatics library for Ruby
(http://www.bioruby.org)
(09/02/2010)
Une référence dans le monde de la bioinformatique -
Hamster - Efficient, Immutable, Thread-Safe Collection classes for Ruby
(https://github.com/harukizaemon/hamster)
(07/03/2011)
Ce projet (gem) fournit égaalement des pointeurs sur des documents pdf sur des structures de données particulières -
Clever Algorithms: Nature-Inspired Programming Recipes (Livre)
(http://cleveralgorithms.com)
(07/03/2011)
Livre de 436 pages sur des algo. d'IA et de méthaheuristiques (dont GRASP, glouton, VNS...) dont l'implantation des algorithmes décrits en pseudo langage est proposée en Ruby La version PDF est (temporairement ?) disponible gratuitement. -
SciRuby: Tools for Scientific Computing in Ruby
(http://sciruby.com)
(03/11/2011)
Récent ettrès prometteur
Programmation système
-
Rush Ruby Shell
(https://github.com/adamwiggins/rush)
(13/03/2011)
Shell unix entièrement objet, avec manipulation puissantes et simples (sans prises de têtes avec les "multi-backslashed quotes") des processus, fichiers sur machines locales ou distantes. -
VFS: Virtual File System
(https://github.com/alexeypetrushin/vfs)
(13/03/2011)
Nouvelle extension, probablement issu de l'abscence d'évolution de Rush. L'auteur (Alexey Petrushin) développe également d'autre outils d'admin. (gestion d cluster, ...) -
Net::SSH
(http://net-ssh.rubyforge.org/)
(03/04/2009)
L'outil de communication standard Ruby. Intègre SFTP, SCP, .... -
Sysutils : Ruby System Utility Libraries
(http://sysutils.rubyforge.org)
(20/01/2009)
Un ensemble de bibliothèques remplaçant de la bibliothèque ruby standard 'Etc' -
net-ldap : Interface Ruby pour LDAP
(http://rubyforge.org/projects/net-ldap/)
(17/04/2012)
Mieux documentée en particulier pas le que l'ancienn alternative ruby-ldap en particulier grâce au tutorial Net::LDAP -
Puppet :
(http://reductivelabs.com/trac/puppet)
(20/01/2009)
Système complet pour automatiser les tâches d'administration système. -
Chef : framework d'administratuin système
(http://wiki.opscode.com/display/chef/Home)
(20/01/2009)
Compétiteur récent de Puppet, mais qui :- utilise Ruby comme format de configuration, et pas format spécifique,
- est conçu pour simplifier son intégration avec d'autres outils,
- ... est un peu jeune ?
-
rake-remote_task : Une extension à Rake (le make de ruby) pour
(https://github.com/seattlerb/rake-remote_task)
(21/02/2013)
Pour automatiser les copies réseau de manière plus légère que Chef ou Puppet. C'est une simple extension à Rake (le make proposé en standard avec ruby) ; ce qui fournit une sorte de Fabric en ruby -
mechanize : automatisation d'accès à un site web
(http://mechanize.rubyforge.org)
(09/02/2010)
Pour automatiser la manipulation de cookies, de formulaire, ...) -
Bundler: gestion des dépendances des applications
(http://gembundler.com/)
(18/11/2011)
Permet de gérer des paquets de gems différents selon les version de ruby utilisés et selon chaque application. -
Rbenv: Simple Ruby Version Management
(https://github.com/sstephenson/rbenv)
(18/11/2011)
Gestion de multiple version de ruby : remplace avantageusemenet RVM (ce dernier modifie les coommandes unix cd, gem, ... !)
Exploite les outils Ruby-build et bundler -
Ruby-build : facilite la compilation et l'installation de versions de ruby
(https://github.com/sstephenson/ruby-build)
(18/11/2011)
Script bash rebuste (et très beau opour du bash ;-)
Analyseurs de ligne de commande
En plus du standard et excellent 'OptionParser' de Ruby, d'autres extensions se proposent d'aller plus loin et de gérer l'ensemble de l'application en ligne de commande (à compléter et en faire une sélection) :-
commander : gestion de programmes en ligne de commande
(http://github.com/visionmedia/commander)
(20/06/2010)
Surchouche à la bibliothèque standard Ruby OptionParser, Commander facilite la création de commande unix complexe. -
Gli : gestion de programmes en ligne de commande
(http://github.com/davetron5000/gli)
(20/06/2010)
Concurrent de commander :
- documentation
- Ruby for Awesome Command Line Applications : excellente présentation de la vie des scripts (bash, etc...:-) -
Trolltop : gestionnaire de ligne de commande
(http://trollop.rubyforge.org/)
(20/06/2010)
Avatage sur ls précédent : mono-fichier, et donc plus simple à intégrer en temps que dépendance.
Développement/débogage ruby
-
Pry : une console ruby
(http://pry.github.com)
(28/10/2011)
Excellent : remplace anatageusemeent irb. Utilisable depuis un programme ruby dans une boucle évènementielle (REPL) -
Ripl: ruby interpreter print loop
(https://github.com/cldwalker/ripl)
(27/11/2011)
À la fois léger et extensible par des modules : successeur possible à irb

