<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>blog.name.nil? : Archives for April 2008</title>
    <link>http://fabien.jakimowicz.com/articles/2008/04.rss</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>dynamisme du langage et patch</title>
      <description>&lt;p&gt;&amp;nbsp;D&amp;eacute;veloppant un projet faisant un appel &amp;agrave; un webservice pour un client, je dois passer des Arrays tel un formulaire html classique. J&amp;#8217;ai donc naturellement utilis&amp;eacute; les fonction r&amp;eacute;seau du langage Ruby, vu que le framework que j&amp;#8217;utilise pour ce projet n&amp;#8217;est autre que le Ruby on Rails. Je me retrouve donc avec une librairie maison pour g&amp;eacute;rer mes appels vers ce webservice, mais petite surprise dans l&amp;#8217;encodage des fameux Arrays : les entr&amp;eacute;es du tableaux sont simplement concat&amp;eacute;n&amp;eacute;es les unes aux autres.&lt;/p&gt;

&lt;p&gt;On est loin de ce que devrait faire un Array dans ce cas pr&amp;eacute;cis !&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Pour rappel, un Array nomm&amp;eacute; test avec 3 valeurs pass&amp;eacute; dans une requ&amp;ecirc;te POST devrait ressembler &amp;agrave; ceci :&lt;/p&gt;

&lt;p&gt;&lt;span class="Apple-style-span" style="color: rgb(32, 32, 32); font-family: 'Lucida Grande'; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;
&lt;pre style="font-family: courier, sans-serif; "&gt;
test[]=one&amp;test[]=two&amp;test[]=three&lt;/pre&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;En fouillant quelque peu sur le net, on trouve en effet mention de ce bug dans la fonction cens&amp;eacute;e encoder les param&amp;egrave;tres dans un format de formulaire web. Bug ouvert il y a environ un an et toujours pas ferm&amp;eacute; bien que le patch ait &amp;eacute;t&amp;eacute; post&amp;eacute;. On trouve m&amp;ecirc;me un exemple du comportement normal avec &amp;#8230; PHP.&lt;/p&gt;

&lt;p&gt;Ne souhaitant pas modifier les sources du langage install&amp;eacute; sur mon syst&amp;egrave;me pour &amp;eacute;viter de devoir reproduire la m&amp;ecirc;me chose sur les serveurs en production, j&amp;#8217;ai d&amp;eacute;cid&amp;eacute; de tirer partie du c&amp;ocirc;t&amp;eacute; dynamique du Ruby en red&amp;eacute;finissant la fonction dans ma petite librairie.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;pre&gt;
module Net::HTTPHeader
  def set_form_data(params, sep = '&amp;')
    params_array = params.map do |k,v|&#194;&#160;
      v.inject([]){|c, val| c &lt;&lt; "#{urlencode(k.to_s)}=#{urlencode(val.to_s)}"}.join(sep)
    end
    self.body = params_array.join(sep)
    self.content_type = 'application/x-www-form-urlencoded'
  end
end&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Ca fait vraiment plaisir de travailler avec un langage certes imparfait mais qui permet des corrections dynamiques sans hack immonde ou patch totalement horrible &amp;agrave; maintenir en production.&lt;/p&gt;</description>
      <pubDate>Fri, 18 Apr 2008 00:32:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:de55ace3-13df-4809-93bc-36d536bdc1b8</guid>
      <comments>http://fabien.jakimowicz.com/articles/2008/04/18/dynamisme-du-langage-et-patch#comments</comments>
      <category>geek</category>
      <category>rails</category>
      <category>ruby</category>
      <category>http</category>
      <trackback:ping>http://fabien.jakimowicz.com/trackbacks?article_id=dynamisme-du-langage-et-patch&amp;day=18&amp;month=04&amp;year=2008</trackback:ping>
      <link>http://fabien.jakimowicz.com/articles/2008/04/18/dynamisme-du-langage-et-patch</link>
    </item>
    <item>
      <title>Paris, 7 avril 2008</title>
      <description>&lt;p&gt;&amp;nbsp;il neige !&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Je ne sais pas trop si on doit voir cela en bien ou en mal &amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://flickr.com/photos/jakimowicz/2393661237/"&gt;&lt;img alt="" src="http://farm4.static.flickr.com/3203/2393661237_f7c68dbac7.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 07 Apr 2008 02:15:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:94c69cbd-88cd-44fe-a630-f418e1d1a30d</guid>
      <comments>http://fabien.jakimowicz.com/articles/2008/04/07/paris-7-avril-2008#comments</comments>
      <category>mylife</category>
      <trackback:ping>http://fabien.jakimowicz.com/trackbacks?article_id=paris-7-avril-2008&amp;day=07&amp;month=04&amp;year=2008</trackback:ping>
      <link>http://fabien.jakimowicz.com/articles/2008/04/07/paris-7-avril-2008</link>
    </item>
  </channel>
</rss>
