Recommend Me


Vendredi 30 janvier 2009

SOAP::LC 0.0.2

Classé dans : Projets, Ruby, SOAP::LC — greg @ 21:50

Je viens de mettre à disposition la version 0.0.2 de SOAP::LC

Au programme, la réorganisation des sources avec un découpage du parseur XSD (entre autres) et un meilleur formatage de la réponse prenant en compte les types. J’ai également ajouté la possibilité de passer directement une enveloppe SOAP au format XML.

Je vais refondre le parseur XSD (ma bête noire) de façon a supprimer cet horrible enchevêtrement de Hash et Array et utiliser une vraie structure d’arbre.

• • •

2012

Classé dans : Important, Tout et rien — greg @ 17:41

Via Gizmodo



• • •

Samedi 24 janvier 2009

SOAP::LC 0.0.1 (enfin !)

Classé dans : Projets, Ruby, SOAP::LC — greg @ 14:05

Cela fait plus d’un an que je l’avais promis, voici enfin la première release 0.0.1 de SOAP::LC

Ne nous emballons pas. C’est “fonctionnel”, mais il reste encore pas mal de travail. Tout d’abord au niveau de la gestion des schémas XML. J’ai totalement réécrit mon parseur XSD et il y a encore pas mal de trous. Ensuite, le traitement de la réponse est minimaliste puisque pour le moment je vous propose seulement de récupérer le contenu XML ou sa transformation (grâce à ActiveSupport) en Hash.

Mais bon, cela arrive !

require ’soap/lc’

wsdl = "http://localhost:3000/simple/wsdl"
s = SOAP::LC.new( ).wsdl( wsdl ).call( "HelloWorld", { :from => "Greg" } )
r = s.result
puts r.to_h
       
# Or

r = SOAP::LC["http://localhost:3000/simple/wsdl"].HelloWorld( :from => "greg" ).result

• • •

Jeudi 22 janvier 2009

Trier en tenant compte des accents…

Classé dans : Ruby — greg @ 21:31

Aujourd’hui, une personne demandait sur la mailling list Rails comment trier des chaînes de caractères contenant des accents.

En effet…

["az","aea","aéb"].sort
# => ["aea", "az", "aéb"]

La solution (la plus simple ?) consiste à remplacer les lettres accentuées par leur équivalent sans accent et à faire le tri sur les chaînes ainsi transformées. Pour cela nous utiliserons le fait que la méthode String.sort peut prendre en paramètre un bloc permettant de préciser la méthode de comparaison entre deux éléments. Donc; imaginons que nous ayons une méthode String.no_accent, nous pouvons donc faire cela :

["az","aea","aéb"].sort { |x, y| x.no_accent <=> y.no_accent }

Malheureusement, la méthode String.no_accent n’existe pas… Et bien, créons là :

class String
  def no_accent
    self.tr_s( ‘ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝáàâäãåçéèêëíìîïñóòôöõúùûüýÿ’,
               ‘AAAAAACEEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy’ )
  end
end

puts ["az","aea","aéb"].sort { |x, y| x.no_accent <=> y.no_accent }
# => ["aea", "aéb", "az"]

Une autre solution consiste à passer par les entités html :

class String
  def no_accent
    require ‘rubygems’
    require ‘htmlentities’
   
    HTMLEntities.new.encode( self, :named ).gsub( /\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;/, \1 ).gsub( /\&([A-za-z]{2})(?:lig)\;/, \1 ).gsub( /\&[^;]+\;/, )
  end
end

["az","aea","aéb"].sort { |x, y| x.no_accent <=> y.no_accent }
# => ["aea", "aéb", "az"]

Et enfin il y a la solution qui utilise unicode :

$KCODE = ‘u’
 
class String
  def no_accent
    require ‘rubygems’
    require ‘unicode’
 
    Unicode.normalize_KD(self).unpack(‘U*’).select{ |cp|
      cp < 0×0300 || cp > 0×036F
    }.pack(‘U*’)
  end
end
 
["az","aea","aéb"].sort { |x, y| x.no_accent <=> y.no_accent }
# => ["aea", "aéb", "az"]
• • •

Lundi 19 janvier 2009

soapUI pour Mac

Classé dans : Java, MacOSX, Tout et rien — greg @ 20:42

MAJ — Désolé, j’avais oublié de vous mettre les liens de téléchargement :

Il y a quelque mois, je vous proposais d’utiliser soapUI sous forme de .app sur Mac.

Depuis nous sommes passés à la version 2.5. Et je n’avais pas pris le temps de refaire le .app. En effet jusqu’à maintenant j’utilisais le Jar Bundler de MacOSX pour générer des .app à partir de .jar. Cette solution à l’avantage d’être simple, malheureusement il n’est pas possible de sauvegarder un quelconque projet et il faut donc tout refaire à chaque fois.

Je me suis donc amusé à écrire un petit script shell qui permet facilement de recréer le .app de soapUI :

#!/bin/bash
# Make SOAP-UI.app

MKSOAP_UI_APP_VERSION="0.0.1"

echo "soapui.app generator for Mac"
echo "Version "$MKSOAP_UI_APP_VERSION
echo "Copyright (c)2009 - Gregoire Lejeune"
echo

echo -n "Chemin d’accès au répertoire de soap-ui : "
read SUI_PATH

echo -n "Version : "
read SOAPUI_VERSION

rm -rf SoapUI.app

# Creation de l‘arborescence du .app
mkdir -p SoapUI.app/Contents/MacOS
mkdir -p SoapUI.app/Contents/Resources/Java

# Copy de JavaApplicationStub
cp /System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub SoapUI.app/Contents/MacOS

# Creation du PkgInfo
echo "APPL????" > SoapUI.app/Contents/PkgInfo

# Mise en place du Info.plist…
cat <<EOF > SoapUI.app/Contents/Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
<plist version="0.9">
<dict>
  <key>CFBundleName</key>
  <string>SoapUI</string>
  <key>CFBundleVersion</key>
  <string>$SOAPUI_VERSION</string>
  <key>CFBundleAllowMixedLocalizations</key>
  <string>true</string>
  <key>CFBundleExecutable</key>
  <string>JavaApplicationStub</string>
  <key>CFBundleDevelopmentRegion</key>
  <string>English</string>
  <key>CFBundlePackageType</key>
  <string>APPL</string>
  <key>CFBundleSignature</key>
  <string>????</string>
  <key>CFBundleInfoDictionaryVersion</key>
  <string>6.0</string>
  <key>CFBundleIconFile</key>
  <string>soapui.icns</string>
  <key>Java</key>
  <dict>
    <key>MainClass</key>
    <string>com.eviware.soapui.SoapUI</string>
    <key>JVMVersion</key>
    <string>1.5+</string>
    <key>ClassPath</key>
      <array>
EOF

# …et copie des fichiers .jar
for f in $SUI_PATH/lib/* $SUI_PATH/bin/*.jar
do
  FILENAME=`basename $f`
  cp $f SoapUI.app/Contents/Resources/Java
  if [ "${FILENAME##*.}" = "jar" ]
  then
    echo "      <string>\$JAVAROOT/$FILENAME</string>" >> SoapUI.app/Contents/Info.plist
  fi
done

cat <<EOG >> SoapUI.app/Contents/Info.plist
      </array>
    <key>Properties</key>
    <dict>
      <key>apple.laf.useScreenMenuBar</key>
      <string>true</string>
    </dict>
  </dict>
</dict>
</plist>
EOG

# Ajout de l’icone
cp soapui.icns SoapUI.app/Contents/Resources

# Ajout de l‘attribut "bundle" pour le .app
/Developer/Tools/SetFile -a B SoapUI.app

# That’s all folks !
echo "Done."

Après le lancement de ce script, on vous demandera de donne le chemin vers le répertoire des binaires (jars) de soapUI et le numéro de version.

Pour l’icône, j’ai pris le .ico dans les sources et je l’ai passé à img2icns.

• • •

Dimanche 18 janvier 2009

Java ma poule !

Classé dans : Java — greg @ 21:50

C’est vrai qu’à part une poule, je ne vois pas bien ce que ça peut-être ;)

• • •

Lundi 12 janvier 2009

NXC Mate 0.1.0-alpha

Classé dans : NXT, Projets — greg @ 9:58

Je vous l’avais promis, mon bundle pour NXC est disponible. Enfin, pas officiellement, mais vous pouvez tout de même le télécharger.

Il y a maintenant la complétion sur l’ensemble du langage, quelques snippets, la coloration syntaxique et deux commandes : l’une pour la compilation et l’autre pour la compilation et l’installation.

Amusez-vous !

• • •

Dimanche 11 janvier 2009

Oups ! (résolu)

Classé dans : Google — greg @ 19:34

[Update] Si vous rencontrez ce souci, il semble que le simple fait de supprimer tous ses cookies et relancer son navigateur résolve le problème…

• • •

GemViz

Classé dans : Projets, Ruby — greg @ 17:38

David Rupp vient d’annoncer, sur son blog, la mise à disposition de gemviz ce petit gem permet de créer le graph des dépendances d’un gem. Pour cela il utilise ruby-graphviz.

• • •

Mardi 6 janvier 2009

Sad day

Classé dans : People — greg @ 16:54

En effet, cela fait aujourd’hui 10 ans que l’immense Michel Petrucciani est mort. C’est une journée idéale pour (re) écouter September Second, Besame Mucho ou la Brasilian Suite

• • •
Page suivante »
Powered by: WordPress • Template adapted from the Simple Green' Wench theme - RSS