68 lines
3.8 KiB
HTML
68 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta name="generator" content="Hugo 0.22.1" />
|
||
<meta charset="utf-8">
|
||
<title>Yannick François - Elsif.fr</title>
|
||
|
||
<meta name="DC.title" content="elsif.fr, site de Yannick François aka yaf (ou ya_f)."/>
|
||
<meta name="description" content="Le site de Yannick François. Développeur Senior, Responsable Produit, Pédagogue. Je travail chez Scopyleft"/>
|
||
<meta name="keywords" content="code, développement, programmation, apprentissage, apprendre, lean, agile, logiciel, tdd, objet, refactoring, libre, creative commons, linux, 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 / Développeur / Pédagogue" href="index.html" />
|
||
<link rel="stylesheet" href="/css/201912-elsif.css" media="all"/>
|
||
<link rel="alternate" type="application/rss" href="/feed.xml" title="elsif.fr/feed" />
|
||
</head>
|
||
<body>
|
||
<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><em>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é. </em></p>
|
||
</article>
|
||
<footer>
|
||
<ul>
|
||
</ul>
|
||
</footer>
|
||
</body>
|
||
</html>
|
||
|