85 lines
3.6 KiB
HTML
85 lines
3.6 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Yannick François - Les pieds dans le code</title>
|
||
|
||
<meta name="DC.title" content="elsif.fr, site de Yannick François aka yaf aka pouype."/>
|
||
<meta name="description" content="Yannick François's website. Senior developer, Code pedagogist. /ut7 teammate, proud member of Electrolab, the crazy hackerspace. Eternel supporter of April, a french association about freesoftware."/>
|
||
<meta name="keywords" content="code, développement, lean, agile, logiciel, tdd, objet, ruby, site perso, personnel, ruby on rails, refactoring, openbsd, bsd, libre, creative commons, unix"/>
|
||
<meta name="author" content="Yannick François, https://elsif.fr"/>
|
||
<meta name="designer" content="Yannick François, https://elsif.fr"/>
|
||
<meta name="geo.placename" content="Poissy, Ile de france, France"/>
|
||
<meta name="robots" content="index,follow" />
|
||
<meta name="language" content="French" />
|
||
<meta name="HandheldFriendly" content="True" />
|
||
<meta name="MobileOptimized" content="320" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0" />
|
||
<link rel="index" title="Yannick François / Developer" href="https://elsif.fr" />
|
||
<link rel="stylesheet" href="/css/knacss.css" media="all"/>
|
||
<link rel="stylesheet" href="/css/elsif.css" media="all"/>
|
||
|
||
|
||
<article>
|
||
|
||
<h1>
|
||
URL Parsing with Ruby
|
||
|
||
</h1>
|
||
|
||
<p>Encore une fois <a href="http://ruby-lang.org">Ruby</a> me confirme que c’est un langage que j’adore.</p>
|
||
|
||
<p>Pour divers raison, il arrive parfois que l’on veuille manipuler une URL. Fourni sous forme complête, c’esst pratique, ça peut servir. Mais il arrive que l’on ai besoin de <em>parser</em> cette URL pour en extraire le domaine, sont extension… J’ai voulu me lancer dans une <a href="http://fr.wikipedia.org/wiki/Expressions_rationnelles">expression régulière [ou Expression Rationnelles Wikipedia]</a> pour analyser une URL…</p>
|
||
|
||
<p>Quelle idiotie ! Il faut toujours se renseigner avant, parcourir l’API. Et justement, j’ai fouillé un peu. Et voilà, dans la librairie du “noyau” de ruby, on trouve un Objet fait pour: <a href="http://www.ruby-doc.org/core/classes/URI.html#M004633">URI</a>.</p>
|
||
|
||
<p>Du coup, au lieu de faire une expression régulière, on applique simplement quelque méthode de l’objet URI.</p>
|
||
|
||
<pre>
|
||
{% highlight ruby %}
|
||
mon_url = "http://www.typouype.org/xml/rss20/feed.xml/"
|
||
mon_uri = URI.parse(mon_url)
|
||
p mon_uri.host
|
||
# => "www.typouype.org"
|
||
{% endhighlight %}
|
||
</pre>
|
||
|
||
<p>Bon ça c’est gentil, mais j’en veux plus moi ! Qu’a cela ne tienne, une méthode fourni tout ce qui manquerais:</p>
|
||
|
||
<pre>
|
||
{% highlight ruby %}
|
||
p URI.split("http://www.ruby-lang.org/")
|
||
# => ["http", nil, "www.ruby-lang.org",
|
||
# nil, nil, "/", nil, nil, nil]
|
||
{% endhighlight %}
|
||
</pre>
|
||
|
||
<p>Et bien voilà :-). Pour info voici les éléments renvoyé par le tableau:</p>
|
||
|
||
<ul>
|
||
<li>Scheme</li>
|
||
<li>Userinfo</li>
|
||
<li>Host</li>
|
||
<li>Port</li>
|
||
<li>Registry</li>
|
||
<li>Path</li>
|
||
<li>Opaque</li>
|
||
<li>Query</li>
|
||
<li>Fragment</li>
|
||
</ul>
|
||
|
||
<p>C’est presque dommage que le tableau ne ssoit pas un Hash avec cet nom d’élément en guise de clé, avec les Clé défini comme attribut de class… (Quoi ? faut bien chipoter un peu non :-) )</p>
|
||
|
||
<p>*Désolé pour le titre en anglais, mais souvent quand je parle de “code” je préfère utiliser l’anglais qui est, je trouve, plus approprié.
|
||
*</p>
|
||
|
||
<article>
|
||
|
||
|
||
<footer style="font-size:75%;text-align:right"><em><a href="/feed.xml">suivre les articles</a></em></footer>
|
||
</body>
|
||
</html>
|
||
|
||
|