<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: collate code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 10:47:11 GMT</pubDate>
    <description>DZone Snippets: collate code</description>
    <item>
      <title>Hash#collate</title>
      <link>http://snippets.dzone.com/posts/show/4930</link>
      <description>&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;# From: http://www.ruby-forum.com/topic/135807&lt;br /&gt;# Author: Nobuyoshi Nakada&lt;br /&gt;&lt;br /&gt;class Hash&lt;br /&gt;   def collate(h)&lt;br /&gt;      raise ArgumentError unless h.is_a?(Hash)&lt;br /&gt;      update(h) { |key, *values| values }&lt;br /&gt;      #update(h) { |key, *values| values.flatten.uniq }&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;h1 = {:a=&gt;1, :b=&gt;2 }&lt;br /&gt;h2 = {:a=&gt;3, :b=&gt;4, :c=&gt;5}&lt;br /&gt;h1.collate(h2)&lt;br /&gt;p h1, h2     &lt;br /&gt;#=&gt; {:b=&gt;[2, 4], :a=&gt;[1, 3], :c=&gt;5}&lt;br /&gt;#=&gt; {:b=&gt;4, :a=&gt;3, :c=&gt;5}&lt;br /&gt;&lt;br /&gt;puts&lt;br /&gt;h1 = {:a=&gt;1, :b=&gt;2 }&lt;br /&gt;h2 = {:a=&gt;3, :b=&gt;4, :c=&gt;5}&lt;br /&gt;h2.collate(h1)&lt;br /&gt;p h1, h2     &lt;br /&gt;#=&gt; {:b=&gt;2, :a=&gt;1}&lt;br /&gt;#=&gt; {:b=&gt;[4, 2], :a=&gt;[3, 1], :c=&gt;5}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;</description>
      <pubDate>Fri, 28 Dec 2007 11:50:03 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4930</guid>
      <author>ntk ()</author>
    </item>
  </channel>
</rss>
