skip to main |
skip to sidebar
OLE : Object Linking and Embedding ("chaînage et incorporation d'objets")Sorte de bibliothèques de fonctions au format Windows (*.dll)Pourquoi les OLE sont si importantes ?Les ole permettent d'accéder à toutes les fonctions des applications windows, et permettent de développer sous le pack office, mais aussi sur tout logiciel respectant cette architecture, ayant une API ou un SDK (c'est le cas de PowerAmc, BusinessObjects, Cognos...). Nous utilisons donc les API pour réaliser nos développement *QUID*.Il est tout à fait possible d'intéragir avec le langage vba (qui peut comporter des facilités), mais qui est aussi très aisé sous Ruby ;) (créer tout de même un module pour récupérer les constantes).[RubyDoc OLE] [SimWi's Blog] où se trouve un ex intéressant avec Word.[Ruby OLE Browser] un script ruby permettant d'instrospecter vos objets/librairies disponibles.NB: pour travailler avec des formats ouverts (OpenOffice, XML, PDF) on préfera utiliser des gem.
Une gem est une petite bibliothèque de classes,fonctions,modules (librairie - package de fonction étendues) pour répondre à un besoin précis. Etant réalisé par la communauté, testé, mise à jour, je vous conseille donc avant chaque développement de ne pas regarder s'il existe une gem (soit en standard, soit à télécharger). [RubyGem] [Documentation Gem] [liste]
Inclure une gem à son programme (équivalent à l'import d'un package java *import java.rmi.*;*)
require 'rubygems'
require 'monPacket/maJolieGem'
La racine des gem se trouve : ruby\lib\ruby\gems\1.8\gems (ici gem en version 1.8)
Installation de RubyGems (si non installée).
- Télécharger la dernière version de rubygems (rubygems-1.3.1.zip par exemple).
- Décompresser l'archive.
- Ouvrir une fenêtre commande DOS (Wx+R>tapez "cmd").- Se positionner dans le répertoire de décompression de l'archive i.e. "C:\Temp\rubygems-1.3.1"
- Exécuter la commande "<>\ruby.exe" setup.rb.
Installation d'une gem : (pré-requis RubyGems doit être installé \bin\gem)
Rien de plus simple il vous suffit de vous rendre en mode command (Wx+R>tapez "cmd") et d'aller dans le répertoire des exécutables (bin) : eclipse\ruby\bin
- Aide : >$ gem --help
- Rechercher une gem avec nom (RegExp) : >$ gem list -r .*nom_gem.*
(ou >$ gem query --remote --name-matches *nom_gem*)
- Installer une gem : >$ gem install --remote *nom_gem*
- Liste des gems distantes disponibles : >$ gem query -r
ex.: installer rails : >$ gem install rails
Résolution de problèmes :
- Par ce moyen les dépendances sont automatiquement téléchargées
- Si vous passez par un proxy, il ne vous sera peut être pas possible d'utiliser le "remote", procédez alors comme suit :
- Récuperer le proxy (adresse et port) (propriétés Internet Explorer>Connexions>Paramètres réseau)
- Créer une variable d'environnement HTTP_PROXY et y mettre la valeur précédemment récupéré e (Wx+pause>avancé>variables d'environnement) [ou juste pour la session]
- Certains problèmes peuvent survenir car l'application gem est réalisé sous unix, il y a parfois des incompatibilités dans la gestion des chemins ("\","/"). Il vous suffit alors de :
- Chercher le(s) fichier(s) "rake_builder.rb" (faire une copie de sauvegarde)
- Remplacer "cmd += " RUBYARCHDIR=#{dest_path} RUBYLIBDIR=#{dest_path}" # ENV is frozen" par
- "cmd += " RUBYARCHDIR=\"#{dest_path}\" RUBYLIBDIR=\"#{dest_path}\"" # ENV is frozen", sauver [article référant]
- Si vous n'avez pas le fichier "rake_builder.rb" tenter de mettre à jour RubyGem ou si rake n'existe pas (\bin)
- >$ gem update --system
- Rake ne fonctionne pas (compilation pour certaine librairie - "rake non reconnue comme commande interne"), le mettre à jour :
- >$ gem install -r rake
- ajouter le path pour rake : fenêtre dos >$ PATH=%PATH%;C:\eclipse\ruby\bin
- En utilisant la commande gem, il est possible d'obtenir le message suivant "erreur : Cette application n'a pas pu démarrer car .dll est introuvable. La réinstallation de cette application peut corriger ce problème". Pour résoudre ce problème, il faut placer la (ou les) dll manquante(s) dans le répertoire bin de Ruby. Il est possible de télécharger les dll. Voici les 3 dlls qui peuvent être manquantes : zlib.dll, libeay32.dll, ssleay32.dll
Test de l'installation d'une gem : >$ ruby -e "require 'xml/libxml'"
Aucun message => OK ; -e:1:in `require': no such file to load => KO
Avoir un environnement avec Eclipse/Ruby :
Installation - Install :
*/ Télécharger eclipse, ruby, jre
Installer Ruby dans le répertoire d'eclipse (eclipse\ruby) - (et la jre dans eclipse\jre)
*/ Il vous faut maintenant installer Core Frameworks (commun pour tous les langages) et Ruby IDE :
- Sur la page Dynamic Languages Toolkit downloads (dltk) récupérer un des liens (section "update site" stable)- Aller ensuite dans Eclipse Help > Software updates...
- Onglet Available Software > Add Site...
- Coller le lien, sélectionner ensuite le Core et l'IDE (pas besoin du sdk, ni des sources)
---> Dynamic Languages Toolkit (DLTK)
-------> Dynamic Languages Toolkit - Core Frameworks
-------> Dynamic Languages Toolkit - Ruby Development Tools
- Cliquer sur Install... > Next > I accept the terms of the license agreements > Finish > Yes
*/ Référencer l'interpréteur pour créer un projet etc. :
- Une fois installé (Core/IDE), aller dans Eclipse Window > Preferences
Une section Ruby est alors créé.
- Aller dans Ruby > Interpreters > Add... ajouter ruby (vous pouvez écrire un chemin relatif à partir du répertoire eclipse)
---> Interpreter Type : Generic Ruby
---> Interpreter Name : ruby (par exemple)
---> Interpreter Executable : ruby\bin\ruby.exe (en chemin relatif)
- Cliquer sur OK > OK
Vous pouvez désormais créer des projets ruby!
NB: Interpreter Librairies [Ruby] est créé dans tout vos projets, vous pouvez alors créer un projet librairies, et faire un lien raccourci dans vos projets pour éviter de recopier l'ensemble des librairies à chaque projet.
*/ Lancer Eclipse avec une JRE autonome (jre dans le répertoire eclipse)
Il suffit de créer un raccourci avec les arguments suivants :
...\eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocationOu bien il est possbile de créer un .bat dans le répertoire eclipse qui contient
eclipse.exe -vm "jre\bin\javaw.exe" -data "workspace" -refresh -showlocation
*/ Maintenant, nous allons créer un projet Ruby pour tester que tout fonctionne correctement. Dans Eclipse :
- Cliquer sur File > New > Ruby Project
---> Project Name : Temp
---> Cliquer sur Create new project in workspace
---> Cliquer sur Use default interpreter
- Cliquer sur Finish
- Cliquer sur File > New > Empty Ruby Script
---> Source Folder : Temp
---> File : test_install.rb
- Cliquer sur Finish
- Saisir : puts "Ruby c'est trop fort"
- Cliquer sur Run > Run > Always save resources before launching > OK
Dans la fenêtre console, le message apparaît => tout est OK !
*/ RoR:
Projet Aptana - démo - article sur les auto-tests
[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 :)