Boire ou coder ... Pourquoi choisir?
Publié le 18 mars 2009 23:00

Parce que Ruby c'est pas que du web

Ruby est très développé et très bien document lorsqu'il s'agit de développer des applications web. Mais parce qu'il n'y a pas que le web dans la vie (ah bon ???), il peut être utile, même dans le cas du développement web, de mettre en place des applications console.

Par console, j'entends sans aucune interface graphique. Celles-ci sont encore un autre sujet.

Du coup en faisant quelques recherches, j'ai découvert SimpleConsole, qui est justement un framework de développement d'applications console simples. Et en plus il gère un (semblant) de MVC.

Votre application va donc se diviser en deux parties. Supposons un fichier "myapp.rb", avec le code suivant : #!/usr/bin/env ruby -w require 'rubygems' require 'simpleconsole' require 'views/myapp'

class Controller < SimpleConsole::Controller   params :string => {:n => :name, :w => :word}

  def default     @name = params[:name]     @word = params[:word]   end end

SimpleConsole::Application.run(ARGV, Controller, View)

Puis un fichier views/myapp.rb class View < SimpleConsole::View   def default     puts "Your name is " + @name + "."     puts "You wanted me to say the word " + @word + "."   end end

Si vous exécutez ruby myapp.rb -name Damien -w Yay

La console vous retournera alors :

Your name is Damien. You wanted me to say the word Yay.

Le code est tout d'abord interprété par le contrôleur pour ensuite être transmis à la vue, qui renvoie le contenu que vous désirez. C'est du pseudo MVC et la chose serait largement améliorable.

Mais c'est un bon début pour une application console qui se doit d'être simple. Et puis vu que l'application ne semble plus maintenue, il est possible que je la forke et que je fasse quelques commits dessus ;)

Commentaires

sphax3d
sphax3d dit: 19 mars 2009 23:00 Site web

Merci bien pour cette petite présentation (et les précédentes), cela me permet de m'initier à Ruby :-)

Je souhaitais simplement signaler que la console me renvoie l'erreur suivante : /usr/lib/ruby/gems/1.8/gems/simpleconsole-0.1.1/lib/application.rb:45:in run': undefined methoddefault' for # (NoMethodError) from myapp.rb:21

Il faut apparemment définir la méthode 'default' et non 'print' pour que ça fonctionne... peut-être à cause d'une différence de version ?

Damien
Damien dit: 20 mars 2009 23:00 Site web

En effet. J'avais eu le même problème en testant mon application en local. Et j'ai oublié de le corriger en rédigeant cet article à partir des exemples donnés sur le site. C'est chose faite. Merci :)

Postez un commentaire

Markdown activé