Je viens récemment de me mettre au langage Ruby dans l’optique de commencer un projet basé sur Ruby On Rails. Pour m’exercer je m’amuse à faire quelques scripts et il y en a un qui je pense peux en intéressé plus d’un. Il s’agit de récupérer le contenu du presse papier et si celui-ci contient une URL de plus de 25 caractères je la transforme en TinyURL, qui permet de partager des URL plus courtes (très utilisé sur Twitter notamment).
Voici le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/ruby require 'open-uri' #On récupere le contenu du presse papier en enlevant les espaces de debut et de fin copyUrl = IO.popen('pbpaste', 'r+').read.strip # Si c'est une URL de plus de 30 caractères if /^http:\/\//.match(copyUrl) and copyUrl.length < 25 # Si ce n'en est pas déjà une, on la transforme en tinyurl. unless /tinyurl\.com/.match(copyUrl) url = URI.escape('http://tinyurl.com/api-create.php?url=' + copyUrl) resultURL = open(url).read # On copie le résultat dans le presse papier IO.popen('pbcopy', 'w').puts resultURL end end |
Comme vous pouvez le voir cela est très simple à faire. Bon, après avoir enregistrer ce code dans un fichier ruby (.rb) pensez à le rendre executable avec un chmod +x tinythis.rb
Maintenant vous pouvez appeller le script via un ./tinythis.rb vais vous avouerais que cela n’est pas très pratique. Le mieux serait de pouvoir exécuter ça rapidement sans passer par la ligne de commande.
Et il y a une solution pour ça, en tout cas sous Mac OS X : utiliser les triggers de Quicksilver ! Et oui, ce fabuleux lanceur d’application permet aussi d’effectuer plein d’action en les associants à des raccourcis clavier, et justement ou peux exécuter des scripts ! C’est pas beau la vie Quicksilver ?
Pour cela vous devez vous rendre dans l’onglet “Triggers” Quicksilver. Tout en bas de le fenêtre cliquez sur le + et choisissez Hotkey.
Dans la nouvelle ligne qui apparaît double-cliquez sur la partie command. Dans le premier champs vous pouvez directement glisser-déposer votre script ruby comme sur la capture :
Dans tout les cas, quelque soit la façon dont vous fassiez, vous devez obtenir cela :
Cliquez sur save. Maintenant cliquez dans dans la zone trigger de votre ligne et définissez votre raccourci clavier. Personnellement j’ai choisir CMD+SHIFT+C ainsi je copie avec CMD+C et je n’ai qu’à rajouter SHIFT pour transformer en Tinyurl.
Si cependant vous avez une solution pour effectuer en même temps la copie dans le presse papier et la transformation en TinyURL, n’hésitez pas à me l’indiquer dans les commentaires ;-)
Voilà c’est la fin de cet article, si vous avez un soucis avec l’une des étapes n’hésitez pas à poser votre question =)