mercredi 17 décembre 2008

Ruby Exceptions

[RubyDoc Exceptions] - begin, rescue, catch, raise, retry <=> try, catch, finally (Java)
Mieux qu'un long discours, un exemple !!

#la bonne façon d'ouvrir un fichier!!
begin
  f = File.new('C:\\myFile.txt', 'r')
rescue => err
  puts "#{err}"
ensure
  f.close unless f.nil?
end

> ouverture du fichier "myFile.txt" en cas d'erreur on affiche l'erreur que l'on récupère (rescue)
> ensure : on s'assure que dans tous les cas on ferme la socket du fichier ;)
NB: on peut bien sur exécuter d'autres traitements...

catch/throw ! on peut vouloir ne pas s'arrêter dans un traitement!
on peut retenter l'opération "
retry/raise"
la récupérer "catch", ou la repropager "throw"
plus de détail dans la doc :)

mercredi 10 décembre 2008

IHM - GUI - Ruby (interface)

IHM : Interface Homme Machine / GUI : Graphical User Interface

Objectif : rendre l'outil facilement exploitable par le plus grand nombre grâce à une interface graphique.

Différent ToolKit existent
Qt, Gtk, Tk, Vruby, Shoes, FxRuby, WxRuby
- Ncurses/Ruby
- Ruby-Gnome

[Ruby/Gtk2, Ruby/QT, Ruby/Fox ou Ruby/wxWidgets ?] [GTK exemple GTK2]


*/ Un petit exemple *Tk/Vruby* lisant les OLE de la machine : [exemple modifié][original]
Il y a deux interfaces à Tcl/Tk inclus dans la distribution standard :
1/ ext/tcltk/- require "tcltk". Syntaxe proche de l'interpréteur de TCL. Description de cette librairie en Japonais uniquement (:s).
2/ ext/tk/- require "tk". Syntaxe proche du modèle d'interface de Tk qui a été fourni pour l'interfaces de Perl et de python.


*/ Qt4 : [Premiers pas en Ruby-Qt4] [Appli en Ruby-Qt4]


*/ Une autre voix intéressante est de réaliser son interface graphiquement avec
wxformbuilder qui fournit en standard un code c++, mais qui génère également du code XRC (xml des interfaces) que vous pouvez exploiter avec firefox2 ou Ruby ;) (WxRuby gem?)

[Une petite description des outils ci-dessus sur ibm.com en English]

Cf. passer des arguments comme pour les programmes unix (ex.: --help)