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 -
Je veux apprendre Ruby
(http://jeveuxapprendreruby.fr)
(21/06/2012)
Liste des meuilleurs doc/outils pour apprendre Ruby -
Learning Ruby in 15 Minutes
(http://www.ironshay.com/post/Learning-Ruby-in-15-Minutes.aspx)
(18/04/2014)
Un guide de survie simple, pour démarrer en 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..11/10/2017)
TB présentation détaillée des fonctionnalités de Ruby -
QuickRef.html
(http://www.zenspider.com/Languages/Ruby/QuickRef.html)
(24/11/2008)
Un pense-bête mono fichier -
Learn Ruby The Hard Way
(http://ruby.learncodethehardway.org/book)
(27/10/2011)
Apprendre Ruby 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) -
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). -
Rubylearning : Tutorial
(http://rubylearning.com/satishtalim/tutorial.html)
(29/10/2013)
Pour info, mais je préfère l'url ci-dessus "Learn Ruby The Hard Way"
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
(https://github.com/ruby/rake/)
(13/12/2008, 30/09/2014)
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) -
Rawr
(https://github.com/rawr/rawr)
(13/12/2008, 30/09/2014)
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 -
Tutorial: Add a C extension to ruby gem
(http://guides.rubygems.org/c-extensions/)
(30/05/2013)
Guide pour intégrer une extension C dans une gem ruby afin de profiter la facilité du déployement des gems -
SWIG: passerelle entre différents langages
(http://www.swig.org/Doc2.0/Ruby.html/)
(30/05/2013)
Permet par exemple d'utiliser une bibliothèque C, C++, Java, ... depuis différents langage dont Ruby, ... -
Rice : interface Ruby et C++
(https://github.com/jasonroelofs/rice/blob/master/ANNOUNCE)
(05/03/2009, 30/09/2014)
Rice utilise et étend le système standard d'extension de ruby (ecrit en C) pour faciliter son usage avec le C++ -
Rb++ : création d'extention c++
(https://github.com/jasonroelofs/rbplusplus/blob/master/ANNOUNCE)
(30/05/2013, 30/09/2014)
Rb++ est une surcouche à rice utilisant rbgccxml pour automatiser au maximum la mapping etre ruby et c++ -
rbgccxml: Ruby library to parse and query C++ header files using GCCXML
(https://github.com/jasonroelofs/rbgccxml)
(21/02/2014)
Utilise gccxml et nokogiri pour analyser les header c++ -
RubyInLine
(http://www.zenspider.com/ZSS/Products/RubyInline)
(03/04/2009, 30/09/2014)
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. -
Flann : Fast Library for Approximate Nearest Neighbors
(https://github.com/mariusmuja/flann/blob/master/src/ruby/lib/flann.rb)
(06/03/2015)
Exemple de binding Ruby pour une bibliothèque C++
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, 30/09/2014)
Scuruby : LE projet en cours autour de ruby scientifique
installation
-
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
(https://github.com/alexgutteridge/igraph/)
(09/05/2009, 30/09/2014)
Bas niveau mais orienté efficacité -
Lemon: début de binding Ruby pour la bibliothèque de graphes Lemon (C++)
(https://github.com/loocash/lemon)
(13/10/2015)
En **tout début** de développement : à surveiller -
linalg: Ruby Linear Algebra Library
(http://rubydoc.info/gems/hornetseye-linalg/1.0.2/frames)
(20/10/2009)
Bibliothèque d'algèbre basée sur Fortran -
MDArray: Multidimentionnal Array Library
(http://rubydoc.info/gems/mdarray/)
(20/11/2013)
Excellente bibliothèque matricielle en java (basée sur Parallel Colt => multithread, ...) -
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 -
Algorithms: Useful algorithms and data structures for Ruby.
(https://github.com/kanwei/algorithms)
(22/01/2014)
Quelques structures de données et algorithmes en ruby issue d'un Google Summer Code de 2008.
Ruby pur mais avec extension C optionnels (dont la distance de levenshtein, tests et benchmark. -
priority-queue : différentes implémentation (dans une version en C
(https://github.com/lagrangemartin/priority-queue/)
(23/01/2014)
-
rglpk : interface Ruby to Glpk (based on Swig)
(https://github.com/wtaysom/rglpk)
(02/02/2009, 30/09/2014)
Glpk est une bibliothèque C de programmation linéaire et en nombres entiers -
rb-gsl : interface à la Gnu Scientific Library
(https://github.com/SciRuby/rb-gsl)
(15/11/2011, 30/09/2014)
En couvrant beaucoup de domaines du calcul scientifique, la GSL se développe lentement mais surement.
Cette version est compatible avec le projet SciRuby -
rubytree : A General Purpose Tree Data Structure for Ruby
(https://github.com/evolve75/RubyTree)
(17/01/2013, 30/09/2014)
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_ruby
qu'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
-
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)
(09/05/2009, 30/09/2014)
Scuruby : LE projet en cours autour de ruby scientifique
installation
Affichage graphique (NOUVEAU À COMPLÉTER !)
-
CTioga2
(http://ctioga2.sourceforge.net)
(24/10/2013, 12/02/2014)
Tioga est un outil en ligne de commande basé sur ruby et pdflatex pour dessiner des figures. Peut être vu comme un concurrent de gnuplot. -
Graphviz (Ruby)
(https://github.com/glejeune/Ruby-Graphviz/)
(12/02/2014)
Pour créer et manipuler et afficher facilement des graphes via Graphiz -
Gnuplot (Ruby)
(https://github.com/rdp/ruby_gnuplot)
(12/02/2014)
Interface Ruby pour Gnuplot -
Gruff
(https://github.com/topfunky/gruff)
(12/02/2014)
Dessiner des graphes (dans le sens courbes, fromages divers, ...) -
Guide Ruby-Tk
(http://www.tutorialspoint.com/ruby/ruby_tk_guide.htm)
(24/08/2010)
Bonne introduction au inding Ruby-Tk -
TkDocs - Tk Tutorial
(http://www.tkdocs.com/tutorial)
(26/10/2010)
Très bonnes doc sur les différent binding pout Tk (dont ruby) -
NyaPlot
(https://github.com/domitry/nyaplot)
(30/09/2014)
Générateur graphique interactif fonctionnant avec iRuby (frontend Ruby du serveur iPython) -
Plotrb
(https://github.com/zuhao/plotrb)
(12/02/2014)
Nouvel outil graphique soutenu pour le projet sciruby -
ruby-qml
(https://github.com/seanchas116/ruby-qml)
(11/03/2016)
Binding Ruby pour la bibliothèque QML (Qt5+)
Basée sur l'extension C libqmlbind à QML (plus facile à porter vers d'autres langages)
Programmation système
-
Build Awesome Command-Line Applications in Ruby 2
(http://shop.oreilly.com/product/9781937785758.do)
(15/02/2014)
Super livre de David B. Copeland pour ceux qui aiment la ligne de commande.
Je fais rarement de la pub pour un bouquin, mais pour celui-là si ! -
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
(https://github.com/net-ssh/net-ssh)
(03/04/2009, 30/09/2014)
L'outil de communication standard Ruby. Intègre SFTP, SCP, .... -
net-ldap : Interface Ruby pour LDAP
(https://github.com/ruby-ldap/ruby-net-ldap/)
(17/04/2012, 30/09/2014)
Voir aussi le site principal rubyldap.com -
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://docs.seattlerb.org/mechanize/)
(09/02/2010, 30/09/2014)
Pour automatiser la manipulation de cookies, de formulaire, ...) -
Capistrano : système de déplayement d'application
(http://capistranorb.com)
(28/06/2013)
Automatisez le déployement de vos applications (ruby/rails, php ou autre) -
Mina : système de déplayement d'application
(http://nadarei.co/mina)
(28/06/2013)
Concurrent en plus rapide de Capistrano.
Au lieu de faire un appel ssh pour chaque commande distante, Mina génère un seul script bash qui est exécuté sur la machine distante.
-
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: rimple Ruby Version Management
(https://github.com/sstephenson/rbenv)
(18/11/2011)
Gestion de multiple versions de ruby : remplace avantageusemenet RVM (ce dernier va jusqu'à modifier les commandes 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 ;-) -
hl: Highlight terms in output or files to assist with visual scanning
(https://github.com/davetron5000/hl)
(19/05/2016)
Une sorte de super-grep qui utilise les séquences ANSI pour colorier des morceaux de texte -
pru: Pipeable Ruby - forget about grep / sed / awk / wc ... use pure, readable Ruby!
(https://github.com/grosser/pru)
(19/05/2016)
À tester !
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, 30/09/2014)
Surchouche à la bibliothèque standard Ruby OptionParser, Commander facilite la création de commande unix complexe (à la git). -
Gli : Git Like Interface.
(http://naildrivin5.com/gli)
(20/06/2010..19/05/2016)
gestion de programmes en ligne de commande, concurrent plus puissant que commander :
- fait par D.B. Caupland auteur du livre "Build Awesome Command-Line Applications"
- http://github.com/davetron5000/gli
- Dont excellente présentation de l'approche ligne de commande !
- documentation
-
highline: A higher level command-line oriented interface.
(https://github.com/JEG2/highline)
(19/05/2016)
Simplifie le gestion des entrées-sortie via la console et leur validation.
Sert de base pour d'autres bibliothèques de plus haut niveau -
Methadone: the best way to create simple command-line applications in Ruby.
(https://github.com/davetron5000/methadone)
(30/09/2014)
Commande facilitant la création de nouveau en Ruby. Gère des options simples, Peut-être vu comme une option plus simple et plus récente de gli (du meme auteur) qui gère ne gère directement pas les sous-commandes à la git. -
Optimist: commandline option parser for Ruby that just gets out of your way
(https://www.manageiq.org/optimist/)
(14/01/2020)
Bibliothèque légère, mono-fichier, sans dépendance externe, mais qui parmet malgré tout la gestion des option à la git
Voir les exemples et la doc, et en particulier doc/sub-commands
En vrac (à trier)
-
Prawn : génération de pdf depuis Ruby
(http://prawn.majesticseacreature.com/)
(20/12/2008)
Excellent -
Rtex: Génération de rapport pdf via pdflatex
(https://github.com/bruce/rtex/)
(22/02/2009, 30/09/2014)
Fournit aussi un exécutable "rtex" permettant de lire du format textile -
Ruport : génération de rapport ou graphes à partir de données brutes
(https://github.com/ruport/ruport)
(20/12/2008, 30/09/2014)
Excellent -
Rails-latex: (extrait)
(https://github.com/baierjan/rails-latex/blob/master/lib/rails-latex/latex_to_pdf.rb)
(30/09/2014)
La partie de Rails-latex qui fait le travail (pour exemple) -
iruby : demo d'affiche de graphique et LaTeX en mode web interactif
(http://nbviewer.ipython.org/github/chezou/iruby-example/blob/master/graph-example.ipynb)
(06/12/2014)
(Dans la série iJulia, iRuby et iPython : on attend la version Jupyter des notebooks
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