doc/rdoc/core/classes/Hash.html in facets-2.4.3 vs doc/rdoc/core/classes/Hash.html in facets-2.4.4
- old
+ new
@@ -65,10 +65,11 @@
<a href="../files/lib/core/facets/hash/except_rb.html">lib/core/facets/hash/except.rb</a>
<a href="../files/lib/core/facets/hash/keys_rb.html">lib/core/facets/hash/keys.rb</a>
<a href="../files/lib/core/facets/hash/merge_rb.html">lib/core/facets/hash/merge.rb</a>
<a href="../files/lib/core/facets/hash/traverse_rb.html">lib/core/facets/hash/traverse.rb</a>
<a href="../files/lib/core/facets/hash/op_rb.html">lib/core/facets/hash/op.rb</a>
+<a href="../files/lib/core/facets/hash/op_push_rb.html">lib/core/facets/hash/op_push.rb</a>
<a href="../files/lib/core/facets/hash/inverse_rb.html">lib/core/facets/hash/inverse.rb</a>
<a href="../files/lib/core/facets/hash/recursive_merge_rb.html">lib/core/facets/hash/recursive_merge.rb</a>
<a href="../files/lib/core/facets/hash/to_proc_rb.html">lib/core/facets/hash/to_proc.rb</a>
<a href="../files/lib/core/facets/hash/insert_rb.html">lib/core/facets/hash/insert.rb</a>
<a href="../files/lib/core/facets/hash/select_rb.html">lib/core/facets/hash/select.rb</a>
@@ -82,36 +83,10 @@
<a href="../files/lib/core/facets/hash/join_rb.html">lib/core/facets/hash/join.rb</a>
<a href="../files/lib/core/facets/hash/slice_rb.html">lib/core/facets/hash/slice.rb</a>
<a href="../files/lib/core/facets/hash/rekey_rb.html">lib/core/facets/hash/rekey.rb</a>
<a href="../files/lib/core/facets/hash/argumentize_rb.html">lib/core/facets/hash/argumentize.rb</a>
<a href="../files/lib/core/facets/hash/at_rb.html">lib/core/facets/hash/at.rb</a>
-<a href="../files/lib/core/facets/hash/alias_rb.html">lib/core/facets/hash/alias.rb</a>
-<a href="../files/lib/core/facets/hash/update_rb.html">lib/core/facets/hash/update.rb</a>
-<a href="../files/lib/core/facets/hash/autonew_rb.html">lib/core/facets/hash/autonew.rb</a>
-<a href="../files/lib/core/facets/hash/recursively_rb.html">lib/core/facets/hash/recursively.rb</a>
-<a href="../files/lib/core/facets/hash/except_rb.html">lib/core/facets/hash/except.rb</a>
-<a href="../files/lib/core/facets/hash/keys_rb.html">lib/core/facets/hash/keys.rb</a>
-<a href="../files/lib/core/facets/hash/merge_rb.html">lib/core/facets/hash/merge.rb</a>
-<a href="../files/lib/core/facets/hash/traverse_rb.html">lib/core/facets/hash/traverse.rb</a>
-<a href="../files/lib/core/facets/hash/op_rb.html">lib/core/facets/hash/op.rb</a>
-<a href="../files/lib/core/facets/hash/inverse_rb.html">lib/core/facets/hash/inverse.rb</a>
-<a href="../files/lib/core/facets/hash/recursive_merge_rb.html">lib/core/facets/hash/recursive_merge.rb</a>
-<a href="../files/lib/core/facets/hash/to_proc_rb.html">lib/core/facets/hash/to_proc.rb</a>
-<a href="../files/lib/core/facets/hash/insert_rb.html">lib/core/facets/hash/insert.rb</a>
-<a href="../files/lib/core/facets/hash/select_rb.html">lib/core/facets/hash/select.rb</a>
-<a href="../files/lib/core/facets/hash/diff_rb.html">lib/core/facets/hash/diff.rb</a>
-<a href="../files/lib/core/facets/hash/mash_rb.html">lib/core/facets/hash/mash.rb</a>
-<a href="../files/lib/core/facets/hash/collate_rb.html">lib/core/facets/hash/collate.rb</a>
-<a href="../files/lib/core/facets/hash/delete_rb.html">lib/core/facets/hash/delete.rb</a>
-<a href="../files/lib/core/facets/hash/weave_rb.html">lib/core/facets/hash/weave.rb</a>
-<a href="../files/lib/core/facets/hash/swap_rb.html">lib/core/facets/hash/swap.rb</a>
-<a href="../files/lib/core/facets/hash/to_struct_rb.html">lib/core/facets/hash/to_struct.rb</a>
-<a href="../files/lib/core/facets/hash/join_rb.html">lib/core/facets/hash/join.rb</a>
-<a href="../files/lib/core/facets/hash/slice_rb.html">lib/core/facets/hash/slice.rb</a>
-<a href="../files/lib/core/facets/hash/rekey_rb.html">lib/core/facets/hash/rekey.rb</a>
-<a href="../files/lib/core/facets/hash/argumentize_rb.html">lib/core/facets/hash/argumentize.rb</a>
-<a href="../files/lib/core/facets/hash/at_rb.html">lib/core/facets/hash/at.rb</a>
<a href="../files/lib/core/facets/blank_rb.html">lib/core/facets/blank.rb</a>
</td>
</tr>
<tr>
<td>Parent:</td>
@@ -133,124 +108,73 @@
<div class="sectiontitle">Methods</div>
<ul>
- <li><a href="#M000152">&</a></li>
- <li><a href="#M000203">&</a></li>
- <li><a href="#M000156">*</a></li>
- <li><a href="#M000207">*</a></li>
- <li><a href="#M000205">+</a></li>
- <li><a href="#M000154">+</a></li>
- <li><a href="#M000155">-</a></li>
- <li><a href="#M000206">-</a></li>
- <li><a href="#M000182"><<</a></li>
- <li><a href="#M000131"><<</a></li>
- <li><a href="#M000130">alias!</a></li>
- <li><a href="#M000181">alias!</a></li>
- <li><a href="#M000180">argumentize</a></li>
- <li><a href="#M000231">argumentize</a></li>
- <li><a href="#M000187">autonew</a></li>
- <li><a href="#M000136">autonew</a></li>
- <li><a href="#M000167">collate</a></li>
- <li><a href="#M000218">collate</a></li>
- <li><a href="#M000168">collate!</a></li>
- <li><a href="#M000219">collate!</a></li>
- <li><a href="#M000169">delete_unless</a></li>
- <li><a href="#M000220">delete_unless</a></li>
- <li><a href="#M000170">delete_values</a></li>
- <li><a href="#M000221">delete_values</a></li>
- <li><a href="#M000222">delete_values_at</a></li>
- <li><a href="#M000171">delete_values_at</a></li>
- <li><a href="#M000215">diff</a></li>
- <li><a href="#M000164">diff</a></li>
- <li><a href="#M000146">each_with_key</a></li>
- <li><a href="#M000197">each_with_key</a></li>
- <li><a href="#M000140">except</a></li>
- <li><a href="#M000191">except</a></li>
- <li><a href="#M000192">except!</a></li>
- <li><a href="#M000141">except!</a></li>
- <li><a href="#M000166">graph!</a></li>
- <li><a href="#M000217">graph!</a></li>
- <li><a href="#M000193">has_keys?</a></li>
- <li><a href="#M000142">has_keys?</a></li>
- <li><a href="#M000144">has_only_keys?</a></li>
- <li><a href="#M000195">has_only_keys?</a></li>
- <li><a href="#M000162">insert</a></li>
- <li><a href="#M000213">insert</a></li>
- <li><a href="#M000157">inverse</a></li>
- <li><a href="#M000208">inverse</a></li>
- <li><a href="#M000175">join</a></li>
- <li><a href="#M000226">join</a></li>
- <li><a href="#M000194">keys?</a></li>
- <li><a href="#M000143">keys?</a></li>
- <li><a href="#M000216">mash!</a></li>
- <li><a href="#M000165">mash!</a></li>
- <li><a href="#M000196">only_keys?</a></li>
- <li><a href="#M000145">only_keys?</a></li>
- <li><a href="#M000158">recursive_merge</a></li>
- <li><a href="#M000209">recursive_merge</a></li>
- <li><a href="#M000210">recursive_merge!</a></li>
- <li><a href="#M000159">recursive_merge!</a></li>
- <li><a href="#M000189">recursively</a></li>
- <li><a href="#M000138">recursively</a></li>
- <li><a href="#M000190">recursively!</a></li>
- <li><a href="#M000139">recursively!</a></li>
- <li><a href="#M000229">rekey</a></li>
- <li><a href="#M000178">rekey</a></li>
- <li><a href="#M000230">rekey!</a></li>
- <li><a href="#M000179">rekey!</a></li>
- <li><a href="#M000135">replace_each</a></li>
- <li><a href="#M000186">replace_each</a></li>
- <li><a href="#M000147">reverse_merge</a></li>
- <li><a href="#M000198">reverse_merge</a></li>
- <li><a href="#M000148">reverse_merge!</a></li>
- <li><a href="#M000199">reverse_merge!</a></li>
- <li><a href="#M000200">reverse_update</a></li>
- <li><a href="#M000149">reverse_update</a></li>
- <li><a href="#M000163">select!</a></li>
- <li><a href="#M000214">select!</a></li>
- <li><a href="#M000176">slice</a></li>
- <li><a href="#M000227">slice</a></li>
- <li><a href="#M000228">slice!</a></li>
- <li><a href="#M000177">slice!</a></li>
- <li><a href="#M000224">swap!</a></li>
- <li><a href="#M000173">swap!</a></li>
- <li><a href="#M000129">to_h</a></li>
- <li><a href="#M000160">to_proc</a></li>
- <li><a href="#M000211">to_proc</a></li>
- <li><a href="#M000212">to_proc_with_reponse</a></li>
- <li><a href="#M000161">to_proc_with_reponse</a></li>
- <li><a href="#M000174">to_struct</a></li>
- <li><a href="#M000225">to_struct</a></li>
- <li><a href="#M000201">traverse</a></li>
- <li><a href="#M000150">traverse</a></li>
- <li><a href="#M000151">traverse!</a></li>
- <li><a href="#M000202">traverse!</a></li>
- <li><a href="#M000183">update_each</a></li>
- <li><a href="#M000132">update_each</a></li>
- <li><a href="#M000133">update_keys</a></li>
- <li><a href="#M000184">update_keys</a></li>
- <li><a href="#M000185">update_values</a></li>
- <li><a href="#M000134">update_values</a></li>
- <li><a href="#M000223">weave</a></li>
- <li><a href="#M000172">weave</a></li>
- <li><a href="#M000137">zipnew</a></li>
- <li><a href="#M000188">zipnew</a></li>
- <li><a href="#M000153">|</a></li>
- <li><a href="#M000204">|</a></li>
+ <li><a href="#M000096">&</a></li>
+ <li><a href="#M000100">*</a></li>
+ <li><a href="#M000098">+</a></li>
+ <li><a href="#M000099">-</a></li>
+ <li><a href="#M000101"><<</a></li>
+ <li><a href="#M000075">alias!</a></li>
+ <li><a href="#M000125">argumentize</a></li>
+ <li><a href="#M000080">autonew</a></li>
+ <li><a href="#M000112">collate</a></li>
+ <li><a href="#M000113">collate!</a></li>
+ <li><a href="#M000114">delete_unless</a></li>
+ <li><a href="#M000115">delete_values</a></li>
+ <li><a href="#M000116">delete_values_at</a></li>
+ <li><a href="#M000109">diff</a></li>
+ <li><a href="#M000090">each_with_key</a></li>
+ <li><a href="#M000084">except</a></li>
+ <li><a href="#M000085">except!</a></li>
+ <li><a href="#M000111">graph!</a></li>
+ <li><a href="#M000086">has_keys?</a></li>
+ <li><a href="#M000088">has_only_keys?</a></li>
+ <li><a href="#M000107">insert</a></li>
+ <li><a href="#M000102">inverse</a></li>
+ <li><a href="#M000120">join</a></li>
+ <li><a href="#M000087">keys?</a></li>
+ <li><a href="#M000110">mash!</a></li>
+ <li><a href="#M000089">only_keys?</a></li>
+ <li><a href="#M000103">recursive_merge</a></li>
+ <li><a href="#M000104">recursive_merge!</a></li>
+ <li><a href="#M000082">recursively</a></li>
+ <li><a href="#M000083">recursively!</a></li>
+ <li><a href="#M000123">rekey</a></li>
+ <li><a href="#M000124">rekey!</a></li>
+ <li><a href="#M000079">replace_each</a></li>
+ <li><a href="#M000091">reverse_merge</a></li>
+ <li><a href="#M000092">reverse_merge!</a></li>
+ <li><a href="#M000093">reverse_update</a></li>
+ <li><a href="#M000108">select!</a></li>
+ <li><a href="#M000121">slice</a></li>
+ <li><a href="#M000122">slice!</a></li>
+ <li><a href="#M000118">swap!</a></li>
+ <li><a href="#M000074">to_h</a></li>
+ <li><a href="#M000105">to_proc</a></li>
+ <li><a href="#M000106">to_proc_with_reponse</a></li>
+ <li><a href="#M000119">to_struct</a></li>
+ <li><a href="#M000094">traverse</a></li>
+ <li><a href="#M000095">traverse!</a></li>
+ <li><a href="#M000076">update_each</a></li>
+ <li><a href="#M000077">update_keys</a></li>
+ <li><a href="#M000078">update_values</a></li>
+ <li><a href="#M000117">weave</a></li>
+ <li><a href="#M000081">zipnew</a></li>
+ <li><a href="#M000097">|</a></li>
</ul>
<div class="sectiontitle">Public Class methods</div>
<div class="method">
<div class="title">
- <a name="M000187"></a><b>autonew</b>(*args)
+ <a name="M000080"></a><b>autonew</b>(*args)
</div>
<div class="description">
<p>
<a href="Hash.html">Hash</a> which auto initializes it‘s children.
</p>
@@ -270,12 +194,12 @@
<p>
CREDIT: Trans CREDIT: Jan Molic
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000187_source')" id="l_M000187_source">show source</a> ]</p>
- <div id="M000187_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000080_source')" id="l_M000080_source">show source</a> ]</p>
+ <div id="M000080_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/autonew.rb, line 20</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">autonew</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
<span class="ruby-comment cmt">#new(*args){|a,k| a[k] = self.class::new(*args)}</span>
<span class="ruby-identifier">leet</span> = <span class="ruby-identifier">lambda</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">new</span>( <span class="ruby-operator">&</span><span class="ruby-identifier">leet</span> ) }
@@ -285,53 +209,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000136"></a><b>autonew</b>(*args)
+ <a name="M000081"></a><b>zipnew</b>(keys,values)
</div>
<div class="description">
<p>
-<a href="Hash.html">Hash</a> which auto initializes it‘s children.
-</p>
-<pre>
- ah = Hash.autonew
- ah['section one']['param one'] = 4
- ah['section one']['param two'] = 5
- ah['section one']['param three'] = 2
- ah['section one']['param four'] = 3
-
- p ah
- # {"section one"=>{"param one"=>4, "param four"=>3, "param three"=>2, "param two"=>5}}
-
- p ah['section one'].keys
- # ["param one", "param four", "param three", "param two"]
-</pre>
-<p>
-CREDIT: Trans CREDIT: Jan Molic
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000136_source')" id="l_M000136_source">show source</a> ]</p>
- <div id="M000136_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/autonew.rb, line 20</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">autonew</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
- <span class="ruby-comment cmt">#new(*args){|a,k| a[k] = self.class::new(*args)}</span>
- <span class="ruby-identifier">leet</span> = <span class="ruby-identifier">lambda</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">hsh</span>, <span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hsh</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">new</span>( <span class="ruby-operator">&</span><span class="ruby-identifier">leet</span> ) }
- <span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>,<span class="ruby-operator">&</span><span class="ruby-identifier">leet</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000137"></a><b>zipnew</b>(keys,values)
- </div>
- <div class="description">
- <p>
Creates a new hash from two arrays —a keys array and a values array.
</p>
<pre>
Hash.zipnew(["a","b","c"], [1,2,3])
#=> { "a"=>1, "b"=>2, "c"=>3 }
@@ -339,12 +224,12 @@
CREDIT: Trans
CREDIT: Ara T. Howard
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000137_source')" id="l_M000137_source">show source</a> ]</p>
- <div id="M000137_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000081_source')" id="l_M000081_source">show source</a> ]</p>
+ <div id="M000081_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/autonew.rb, line 35</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipnew</span>(<span class="ruby-identifier">keys</span>,<span class="ruby-identifier">values</span>) <span class="ruby-comment cmt"># or some better name</span>
<span class="ruby-identifier">h</span> = {}
<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">times</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[ <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">i</span>] ] = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>] }
@@ -352,44 +237,14 @@
<span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
-<div class="method">
- <div class="title">
- <a name="M000188"></a><b>zipnew</b>(keys,values)
- </div>
- <div class="description">
- <p>
-Creates a new hash from two arrays —a keys array and a values array.
-</p>
-<pre>
- Hash.zipnew(["a","b","c"], [1,2,3])
- #=> { "a"=>1, "b"=>2, "c"=>3 }
-
- CREDIT: Trans
- CREDIT: Ara T. Howard
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000188_source')" id="l_M000188_source">show source</a> ]</p>
- <div id="M000188_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/autonew.rb, line 35</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">zipnew</span>(<span class="ruby-identifier">keys</span>,<span class="ruby-identifier">values</span>) <span class="ruby-comment cmt"># or some better name</span>
- <span class="ruby-identifier">h</span> = {}
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">size</span>.<span class="ruby-identifier">times</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">h</span>[ <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">i</span>] ] = <span class="ruby-identifier">values</span>[<span class="ruby-identifier">i</span>] }
- <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
<div class="sectiontitle">Public Instance methods</div>
<div class="method">
<div class="title">
- <a name="M000152"></a><b>&</b>(other)
+ <a name="M000096"></a><b>&</b>(other)
</div>
<div class="description">
<p>
<a href="Hash.html">Hash</a> intersection. Two hashes intersect when their
pairs are equal.
@@ -410,12 +265,12 @@
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000152_source')" id="l_M000152_source">show source</a> ]</p>
- <div id="M000152_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">show source</a> ]</p>
+ <div id="M000096_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 19</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">&</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-keyword kw">case</span> <span class="ruby-identifier">other</span>
<span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
@@ -432,61 +287,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000203"></a><b>&</b>(other)
+ <a name="M000100"></a><b>*</b>(other)
</div>
<div class="description">
<p>
-<a href="Hash.html">Hash</a> intersection. Two hashes intersect when their
-pairs are equal.
-</p>
-<pre>
- {:a=>1,:b=>2} & {:a=>1,:c=>3} #=> {:a=>1}
-</pre>
-<p>
-A hash can also be intersected with an array to intersect keys only.
-</p>
-<pre>
- {:a=>1,:b=>2} & [:a,:c] #=> {:a=>1}
-</pre>
-<p>
-The later form is similar to pairs_at. The differ only in that pairs_at
-will return a nil value for a key not in the hash, but #& will not.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000203_source')" id="l_M000203_source">show source</a> ]</p>
- <div id="M000203_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 19</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">other</span>
- <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Array</span>
- <span class="ruby-identifier">k</span> = (<span class="ruby-identifier">keys</span> <span class="ruby-operator">&</span> <span class="ruby-identifier">other</span>)
- <span class="ruby-constant">Hash</span>[<span class="ruby-operator">*</span>(<span class="ruby-identifier">k</span>.<span class="ruby-identifier">zip</span>(<span class="ruby-identifier">values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">k</span>)).<span class="ruby-identifier">flatten</span>)]
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">x</span> = (<span class="ruby-identifier">to_a</span> <span class="ruby-operator">&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_a</span>).<span class="ruby-identifier">inject</span>([]) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">kv</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">a</span>.<span class="ruby-identifier">concat</span> <span class="ruby-identifier">kv</span>; <span class="ruby-identifier">a</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-constant">Hash</span>[<span class="ruby-operator">*</span><span class="ruby-identifier">x</span>]
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000156"></a><b>*</b>(other)
- </div>
- <div class="description">
- <p>
Like merge operator ’+’ but merges in reverse order.
</p>
<pre>
h1 = { :a=>1 }
h2 = { :a=>2, :b=>3 }
@@ -496,12 +304,12 @@
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000156_source')" id="l_M000156_source">show source</a> ]</p>
- <div id="M000156_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000100_source')" id="l_M000100_source">show source</a> ]</p>
+ <div id="M000100_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 80</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
<span class="ruby-keyword kw">end</span>
@@ -509,53 +317,23 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000207"></a><b>*</b>(other)
+ <a name="M000098"></a><b>+</b>(other)
</div>
<div class="description">
<p>
-Like merge operator ’+’ but merges in reverse order.
-</p>
-<pre>
- h1 = { :a=>1 }
- h2 = { :a=>2, :b=>3 }
-
- h1 + h2 #=> { :a=>2, :b=>3 }
- h1 * h2 #=> { :a=>1, :b=>3 }
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000207_source')" id="l_M000207_source">show source</a> ]</p>
- <div id="M000207_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 80</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000205"></a><b>+</b>(other)
- </div>
- <div class="description">
- <p>
Operator for merge.
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000205_source')" id="l_M000205_source">show source</a> ]</p>
- <div id="M000205_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">show source</a> ]</p>
+ <div id="M000098_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 44</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-keyword kw">end</span>
@@ -563,49 +341,25 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000154"></a><b>+</b>(other)
+ <a name="M000099"></a><b>-</b>(other)
</div>
<div class="description">
<p>
-Operator for merge.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000154_source')" id="l_M000154_source">show source</a> ]</p>
- <div id="M000154_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 44</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">merge</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000155"></a><b>-</b>(other)
- </div>
- <div class="description">
- <p>
Operator for remove hash paris. If another hash is given the pairs are only
removed if both key and value are equal. If an array is given then matching
keys are removed.
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000155_source')" id="l_M000155_source">show source</a> ]</p>
- <div id="M000155_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000099_source')" id="l_M000099_source">show source</a> ]</p>
+ <div id="M000099_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 54</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">h</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
@@ -625,154 +379,40 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000206"></a><b>-</b>(other)
+ <a name="M000101"></a><b><<</b>(other)
</div>
<div class="description">
<p>
-Operator for remove hash paris. If another hash is given the pairs are only
-removed if both key and value are equal. If an array is given then matching
-keys are removed.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000206_source')" id="l_M000206_source">show source</a> ]</p>
- <div id="M000206_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 54</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">h</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">to_ary</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">k</span>)
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">v</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>]
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000182"></a><b><<</b>(other)
- </div>
- <div class="description">
- <p>
Can be used like update, or passed as two-element [key,value] array.
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000182_source')" id="l_M000182_source">show source</a> ]</p>
- <div id="M000182_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">show source</a> ]</p>
+ <div id="M000101_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 8</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/op_push.rb, line 8</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator"><<</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">store</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">other</span>)
<span class="ruby-keyword kw">else</span>
<span class="ruby-identifier">update</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000131"></a><b><<</b>(other)
- </div>
- <div class="description">
- <p>
-Can be used like update, or passed as two-element [key,value] array.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000131_source')" id="l_M000131_source">show source</a> ]</p>
- <div id="M000131_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 8</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator"><<</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:to_ary</span>)
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">store</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">other</span>)
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">update</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000130"></a><b>alias!</b>(newkey, oldkey)
- </div>
- <div class="description">
- <p>
-Modifies the receiving <a href="Hash.html">Hash</a> so that the value
-previously referred to by <em>oldkey</em> is also referenced by
-<em>newkey</em>; <em>oldkey</em> is retained in the <a
-href="Hash.html">Hash</a>. If <em>oldkey</em> does not exist as a key in
-the <a href="Hash.html">Hash</a>, no change is effected.
-</p>
-<p>
-Returns a reference to the <a href="Hash.html">Hash</a>.
-</p>
-<pre>
- foo = { :name=>'Gavin', 'wife'=>:Lisa }
- foo.alias!('name',:name) => { :name=>'Gavin', 'name'=>'Gavin', 'wife'=>:Lisa }
-
- foo = { :name=>'Gavin', 'wife'=>:Lisa }
- foo.alias!('spouse','wife') => { :name=>'Gavin', 'wife'=>:Lisa, 'spouse'=>:Lisa }
-
- foo = { :name=>'Gavin', 'wife'=>:Lisa }
- foo.alias!('bar','foo') => { :name=>'Gavin', 'wife'=>:Lisa }
-</pre>
-<p>
-Note that if the <em>oldkey</em> is reassigned, the reference will no
-longer exist, and the <em>newkey</em> will remain as it was.
-</p>
-<pre>
- CREDIT: Gavin Sinclair
-</pre>
-<p>
-TODO: Rename to aliaskey or something else.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000130_source')" id="l_M000130_source">show source</a> ]</p>
- <div id="M000130_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/alias.rb, line 25</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alias!</span>(<span class="ruby-identifier">newkey</span>, <span class="ruby-identifier">oldkey</span>)
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">newkey</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">oldkey</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">oldkey</span>)
<span class="ruby-keyword kw">self</span>
<span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000181"></a><b>alias!</b>(newkey, oldkey)
+ <a name="M000075"></a><b>alias!</b>(newkey, oldkey)
</div>
<div class="description">
<p>
Modifies the receiving <a href="Hash.html">Hash</a> so that the value
previously referred to by <em>oldkey</em> is also referenced by
@@ -803,12 +443,12 @@
<p>
TODO: Rename to aliaskey or something else.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000181_source')" id="l_M000181_source">show source</a> ]</p>
- <div id="M000181_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000075_source')" id="l_M000075_source">show source</a> ]</p>
+ <div id="M000075_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/alias.rb, line 25</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">alias!</span>(<span class="ruby-identifier">newkey</span>, <span class="ruby-identifier">oldkey</span>)
<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">newkey</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">oldkey</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">oldkey</span>)
<span class="ruby-keyword kw">self</span>
@@ -817,11 +457,11 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000180"></a><b>argumentize</b>(args_field=nil)
+ <a name="M000125"></a><b>argumentize</b>(args_field=nil)
</div>
<div class="description">
<p>
Turn a hash into arguments.
</p>
@@ -831,12 +471,12 @@
h.argumentize(:list) #=> [ [1,2], { :base => "HI" } ]
h.argumentize(:base) #=> [ ["HI"], { :list => [1,2] } ]
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000180_source')" id="l_M000180_source">show source</a> ]</p>
- <div id="M000180_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000125_source')" id="l_M000125_source">show source</a> ]</p>
+ <div id="M000125_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/argumentize.rb, line 10</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">argumentize</span>(<span class="ruby-identifier">args_field</span>=<span class="ruby-keyword kw">nil</span>)
<span class="ruby-identifier">config</span> = <span class="ruby-identifier">dup</span>
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args_field</span>
@@ -851,48 +491,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000231"></a><b>argumentize</b>(args_field=nil)
+ <a name="M000112"></a><b>collate</b>(other_hash)
</div>
<div class="description">
<p>
-Turn a hash into arguments.
-</p>
-<pre>
- h = { :list => [1,2], :base => "HI" }
- h.argumentize #=> [ [], { :list => [1,2], :base => "HI" } ]
- h.argumentize(:list) #=> [ [1,2], { :base => "HI" } ]
- h.argumentize(:base) #=> [ ["HI"], { :list => [1,2] } ]
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000231_source')" id="l_M000231_source">show source</a> ]</p>
- <div id="M000231_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/argumentize.rb, line 10</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">argumentize</span>(<span class="ruby-identifier">args_field</span>=<span class="ruby-keyword kw">nil</span>)
- <span class="ruby-identifier">config</span> = <span class="ruby-identifier">dup</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args_field</span>
- <span class="ruby-identifier">args</span> = [<span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">args_field</span>)].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">args</span> = []
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">config</span>
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">args</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000167"></a><b>collate</b>(other_hash)
- </div>
- <div class="description">
- <p>
Merge the values of this hash with those from another, setting all values
to be arrays representing the values from both hashes.
</p>
<pre>
{ :a=>1, :b=>2 }.collate :a=>3, :b=>4, :c=>5
@@ -900,12 +506,12 @@
CREDIT: Gavin Kistner (Phrogz)
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000167_source')" id="l_M000167_source">show source</a> ]</p>
- <div id="M000167_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000112_source')" id="l_M000112_source">show source</a> ]</p>
+ <div id="M000112_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 11</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate</span>(<span class="ruby-identifier">other_hash</span>)
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">collate!</span>(<span class="ruby-identifier">other_hash</span>)
<span class="ruby-keyword kw">end</span>
@@ -913,49 +519,21 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000218"></a><b>collate</b>(other_hash)
+ <a name="M000113"></a><b>collate!</b>(other_hash)
</div>
<div class="description">
<p>
-Merge the values of this hash with those from another, setting all values
-to be arrays representing the values from both hashes.
-</p>
-<pre>
- { :a=>1, :b=>2 }.collate :a=>3, :b=>4, :c=>5
- #=> { :a=>[1,3], :b=>[2,4], :c=>[5] }
-
- CREDIT: Gavin Kistner (Phrogz)
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000218_source')" id="l_M000218_source">show source</a> ]</p>
- <div id="M000218_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 11</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate</span>(<span class="ruby-identifier">other_hash</span>)
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">collate!</span>(<span class="ruby-identifier">other_hash</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000168"></a><b>collate!</b>(other_hash)
- </div>
- <div class="description">
- <p>
-The same as <a href="Hash.html#M000167">collate</a>, but modifies the
+The same as <a href="Hash.html#M000112">collate</a>, but modifies the
receiver in place.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000168_source')" id="l_M000168_source">show source</a> ]</p>
- <div id="M000168_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000113_source')" id="l_M000113_source">show source</a> ]</p>
+ <div id="M000113_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 17</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate!</span>(<span class="ruby-identifier">other_hash</span>)
<span class="ruby-comment cmt"># Prepare, ensuring every existing key is already an Array</span>
<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
@@ -986,68 +564,23 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000219"></a><b>collate!</b>(other_hash)
+ <a name="M000114"></a><b>delete_unless</b>( {|| ...}
</div>
<div class="description">
<p>
-The same as <a href="Hash.html#M000167">collate</a>, but modifies the
-receiver in place.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000219_source')" id="l_M000219_source">show source</a> ]</p>
- <div id="M000219_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/collate.rb, line 17</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">collate!</span>(<span class="ruby-identifier">other_hash</span>)
- <span class="ruby-comment cmt"># Prepare, ensuring every existing key is already an Array</span>
- <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">value</span>]
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-comment cmt"># Collate with values from other_hash</span>
- <span class="ruby-identifier">other_hash</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>].<span class="ruby-identifier">concat</span>( <span class="ruby-identifier">value</span> )
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = [<span class="ruby-identifier">value</span>]
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-comment cmt">#each{ |key, value| value.uniq! } if options[ :uniq ]</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000169"></a><b>delete_unless</b>( {|| ...}
- </div>
- <div class="description">
- <p>
Inverse of delete_if.
</p>
<pre>
CREDIT: Daniel Schierbeck
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000169_source')" id="l_M000169_source">show source</a> ]</p>
- <div id="M000169_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000114_source')" id="l_M000114_source">show source</a> ]</p>
+ <div id="M000114_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 11</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_unless</span> <span class="ruby-comment cmt">#:yield:</span>
<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>) }
<span class="ruby-keyword kw">end</span>
@@ -1055,38 +588,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000220"></a><b>delete_unless</b>( {|| ...}
+ <a name="M000115"></a><b>delete_values</b>(*values)
</div>
<div class="description">
<p>
-Inverse of delete_if.
-</p>
-<pre>
- CREDIT: Daniel Schierbeck
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000220_source')" id="l_M000220_source">show source</a> ]</p>
- <div id="M000220_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 11</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_unless</span> <span class="ruby-comment cmt">#:yield:</span>
- <span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>) }
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000170"></a><b>delete_values</b>(*values)
- </div>
- <div class="description">
- <p>
Minor modification to Ruby‘s Hash#delete method allowing it to take
multiple keys.
</p>
<pre>
hsh = { :a => 1, :b => 2 }
@@ -1095,12 +604,12 @@
CREDIT: Daniel Schierbeck
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000170_source')" id="l_M000170_source">show source</a> ]</p>
- <div id="M000170_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000115_source')" id="l_M000115_source">show source</a> ]</p>
+ <div id="M000115_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 24</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)) }
<span class="ruby-keyword kw">end</span>
@@ -1108,46 +617,17 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000221"></a><b>delete_values</b>(*values)
+ <a name="M000116"></a><b>delete_values_at</b>(*keys, &yld)
</div>
<div class="description">
<p>
Minor modification to Ruby‘s Hash#delete method allowing it to take
multiple keys.
</p>
-<pre>
- hsh = { :a => 1, :b => 2 }
- hsh.delete_values(1)
- hsh #=> { :b => 2 }
-
- CREDIT: Daniel Schierbeck
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000221_source')" id="l_M000221_source">show source</a> ]</p>
- <div id="M000221_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 24</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)) }
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000222"></a><b>delete_values_at</b>(*keys, &yld)
- </div>
- <div class="description">
- <p>
-Minor modification to Ruby‘s Hash#delete method allowing it to take
-multiple keys.
-</p>
<p>
This works niely with hash#[] and <a href="Hash.html">Hash</a>#[]= facets.
</p>
<pre>
hsh[:a, :b, :c] = 1, 2, 3
@@ -1159,12 +639,12 @@
CREDIT: Daniel Schierbeck
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000222_source')" id="l_M000222_source">show source</a> ]</p>
- <div id="M000222_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000116_source')" id="l_M000116_source">show source</a> ]</p>
+ <div id="M000116_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 42</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>)
<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>) }
<span class="ruby-keyword kw">end</span>
@@ -1172,55 +652,20 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000171"></a><b>delete_values_at</b>(*keys, &yld)
+ <a name="M000109"></a><b>diff</b>(hash)
</div>
<div class="description">
<p>
-Minor modification to Ruby‘s Hash#delete method allowing it to take
-multiple keys.
-</p>
-<p>
-This works niely with hash#[] and <a href="Hash.html">Hash</a>#[]= facets.
-</p>
-<pre>
- hsh[:a, :b, :c] = 1, 2, 3
-
- a, b, c = hsh.delete_values_at(:a, :b, :c)
-
- [a, b, c] #=> [1, 2, 3]
- hsh #=> {}
-
- CREDIT: Daniel Schierbeck
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000171_source')" id="l_M000171_source">show source</a> ]</p>
- <div id="M000171_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/delete.rb, line 42</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete_values_at</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>)
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>) }
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000215"></a><b>diff</b>(hash)
- </div>
- <div class="description">
- <p>
Difference comparison of two hashes.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000215_source')" id="l_M000215_source">show source</a> ]</p>
- <div id="M000215_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000109_source')" id="l_M000109_source">show source</a> ]</p>
+ <div id="M000109_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/diff.rb, line 5</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">diff</span>(<span class="ruby-identifier">hash</span>)
<span class="ruby-identifier">h1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">v</span> }
<span class="ruby-identifier">h2</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>) }
@@ -1230,47 +675,24 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000164"></a><b>diff</b>(hash)
+ <a name="M000090"></a><b>each_with_key</b>( &yld )
</div>
<div class="description">
<p>
-Difference comparison of two hashes.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000164_source')" id="l_M000164_source">show source</a> ]</p>
- <div id="M000164_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/diff.rb, line 5</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">diff</span>(<span class="ruby-identifier">hash</span>)
- <span class="ruby-identifier">h1</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">v</span> }
- <span class="ruby-identifier">h2</span> = <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">delete_if</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>) }
- <span class="ruby-identifier">h1</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">h2</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000146"></a><b>each_with_key</b>( &yld )
- </div>
- <div class="description">
- <p>
Each with key is like each_pair but reverses the order the parameters to
[value,key] instead of [key,value].
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000146_source')" id="l_M000146_source">show source</a> ]</p>
- <div id="M000146_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000090_source')" id="l_M000090_source">show source</a> ]</p>
+ <div id="M000090_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 40</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_with_key</span>( <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span> )
<span class="ruby-identifier">each_pair</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">yld</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">v</span>,<span class="ruby-identifier">k</span>) }
<span class="ruby-keyword kw">end</span>
@@ -1278,45 +700,20 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000197"></a><b>each_with_key</b>( &yld )
+ <a name="M000084"></a><b>except</b>(*less_keys)
</div>
<div class="description">
<p>
-Each with key is like each_pair but reverses the order the parameters to
-[value,key] instead of [key,value].
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000197_source')" id="l_M000197_source">show source</a> ]</p>
- <div id="M000197_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 40</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each_with_key</span>( <span class="ruby-operator">&</span><span class="ruby-identifier">yld</span> )
- <span class="ruby-identifier">each_pair</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">yld</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">v</span>,<span class="ruby-identifier">k</span>) }
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000140"></a><b>except</b>(*less_keys)
- </div>
- <div class="description">
- <p>
Returns a new hash less the given keys.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000140_source')" id="l_M000140_source">show source</a> ]</p>
- <div id="M000140_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000084_source')" id="l_M000084_source">show source</a> ]</p>
+ <div id="M000084_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 5</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">less_keys</span>)
<span class="ruby-keyword kw">end</span>
@@ -1324,160 +721,70 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000191"></a><b>except</b>(*less_keys)
+ <a name="M000085"></a><b>except!</b>(*less_keys)
</div>
<div class="description">
<p>
-Returns a new hash less the given keys.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000191_source')" id="l_M000191_source">show source</a> ]</p>
- <div id="M000191_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 5</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
- <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">less_keys</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000192"></a><b>except!</b>(*less_keys)
- </div>
- <div class="description">
- <p>
Replaces hash with new hash less the given keys. This returns the hash of
keys removed.
</p>
<pre>
h = {:a=>1, :b=>2, :c=>3}
h.except!(:a) #=> {:a=>1}
h #=> {:b=>2,:c=>3}
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000192_source')" id="l_M000192_source">show source</a> ]</p>
- <div id="M000192_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000085_source')" id="l_M000085_source">show source</a> ]</p>
+ <div id="M000085_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 16</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>))
- <span class="ruby-identifier">removed</span>
- <span class="ruby-keyword kw">end</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 18</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
+ <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
+ <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>))
+ <span class="ruby-identifier">removed</span>
+ <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000141"></a><b>except!</b>(*less_keys)
+ <a name="M000111"></a><b>graph!</b>(&yld)
</div>
<div class="description">
<p>
-Replaces hash with new hash less the given keys. This returns the hash of
-keys removed.
-</p>
-<pre>
- h = {:a=>1, :b=>2, :c=>3}
- h.except!(:a) #=> {:a=>1}
- h #=> {:b=>2,:c=>3}
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000141_source')" id="l_M000141_source">show source</a> ]</p>
- <div id="M000141_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/except.rb, line 16</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">except!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">less_keys</span>))
- <span class="ruby-identifier">removed</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000166"></a><b>graph!</b>(&yld)
- </div>
- <div class="description">
- <p>
Alias for mash!
</p>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000217"></a><b>graph!</b>(&yld)
+ <a name="M000086"></a><b>has_keys?</b>(*check_keys)
</div>
<div class="description">
<p>
-Alias for mash!
-</p>
- </div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000193"></a><b>has_keys?</b>(*check_keys)
- </div>
- <div class="description">
- <p>
Returns true or false whether the hash contains the given keys.
</p>
<pre>
h = { :a => 1, :b => 2 }
h.has_keys?( :a ) #=> true
h.has_keys?( :c ) #=> false
CREDIT: Trans
</pre>
</div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000193_source')" id="l_M000193_source">show source</a> ]</p>
- <div id="M000193_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 12</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
- <span class="ruby-identifier">unknown_keys</span> = <span class="ruby-identifier">check_keys</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span>
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000142"></a><b>has_keys?</b>(*check_keys)
- </div>
- <div class="description">
- <p>
-Returns true or false whether the hash contains the given keys.
-</p>
-<pre>
- h = { :a => 1, :b => 2 }
- h.has_keys?( :a ) #=> true
- h.has_keys?( :c ) #=> false
-
- CREDIT: Trans
-</pre>
- </div>
<div class="aka">
This method is also aliased as
- <a href="Hash.html#M000143">keys?</a>
- <a href="Hash.html#M000194">keys?</a>
+ <a href="Hash.html#M000087">keys?</a>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000142_source')" id="l_M000142_source">show source</a> ]</p>
- <div id="M000142_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000086_source')" id="l_M000086_source">show source</a> ]</p>
+ <div id="M000086_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 12</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
<span class="ruby-identifier">unknown_keys</span> = <span class="ruby-identifier">check_keys</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span>
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
@@ -1486,11 +793,11 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000144"></a><b>has_only_keys?</b>(*check_keys)
+ <a name="M000088"></a><b>has_only_keys?</b>(*check_keys)
</div>
<div class="description">
<p>
Returns true if the hash contains <em>only</em> the given keys, otherwise
false.
@@ -1503,16 +810,15 @@
CREDIT: Trans
</pre>
</div>
<div class="aka">
This method is also aliased as
- <a href="Hash.html#M000145">only_keys?</a>
- <a href="Hash.html#M000196">only_keys?</a>
+ <a href="Hash.html#M000089">only_keys?</a>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000144_source')" id="l_M000144_source">show source</a> ]</p>
- <div id="M000144_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000088_source')" id="l_M000088_source">show source</a> ]</p>
+ <div id="M000088_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 28</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_only_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
<span class="ruby-identifier">unknown_keys</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">check_keys</span>
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
@@ -1521,56 +827,26 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000195"></a><b>has_only_keys?</b>(*check_keys)
+ <a name="M000107"></a><b>insert</b>(name, value)
</div>
<div class="description">
<p>
-Returns true if the hash contains <em>only</em> the given keys, otherwise
-false.
-</p>
-<pre>
- h = { :a => 1, :b => 2 }
- h.has_only_keys?( :a, :b ) #=> true
- h.has_only_keys?( :a ) #=> false
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000195_source')" id="l_M000195_source">show source</a> ]</p>
- <div id="M000195_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/keys.rb, line 28</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_only_keys?</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">check_keys</span>)
- <span class="ruby-identifier">unknown_keys</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">check_keys</span>
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unknown_keys</span>.<span class="ruby-identifier">empty?</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000162"></a><b>insert</b>(name, value)
- </div>
- <div class="description">
- <p>
As with store but only if the key isn‘t already in the hash.
</p>
<p>
TODO: Would store? be a better name?
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000162_source')" id="l_M000162_source">show source</a> ]</p>
- <div id="M000162_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000107_source')" id="l_M000107_source">show source</a> ]</p>
+ <div id="M000107_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/insert.rb, line 10</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
<span class="ruby-keyword kw">false</span>
@@ -1583,47 +859,15 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000213"></a><b>insert</b>(name, value)
+ <a name="M000102"></a><b>inverse</b>()
</div>
<div class="description">
<p>
-As with store but only if the key isn‘t already in the hash.
-</p>
-<p>
-TODO: Would store? be a better name?
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000213_source')" id="l_M000213_source">show source</a> ]</p>
- <div id="M000213_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/insert.rb, line 10</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">key?</span>(<span class="ruby-identifier">name</span>)
- <span class="ruby-keyword kw">false</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">store</span>(<span class="ruby-identifier">name</span>,<span class="ruby-identifier">value</span>)
- <span class="ruby-keyword kw">true</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000157"></a><b>inverse</b>()
- </div>
- <div class="description">
- <p>
-Create a "true" <a href="Hash.html#M000157">inverse</a> hash by
+Create a "true" <a href="Hash.html#M000102">inverse</a> hash by
storing mutliple values in Arrays.
</p>
<pre>
h = {"a"=>3, "b"=>3, "c"=>3, "d"=>2, "e"=>9, "f"=>3, "g"=>9}
@@ -1634,12 +878,12 @@
CREDIT: Tilo Sloboda
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000157_source')" id="l_M000157_source">show source</a> ]</p>
- <div id="M000157_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000102_source')" id="l_M000102_source">show source</a> ]</p>
+ <div id="M000102_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/inverse.rb, line 14</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inverse</span>
<span class="ruby-identifier">i</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each_pair</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
@@ -1655,63 +899,23 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000208"></a><b>inverse</b>()
+ <a name="M000120"></a><b>join</b>(pair_divider='', elem_divider='')
</div>
<div class="description">
<p>
-Create a "true" <a href="Hash.html#M000157">inverse</a> hash by
-storing mutliple values in Arrays.
-</p>
-<pre>
- h = {"a"=>3, "b"=>3, "c"=>3, "d"=>2, "e"=>9, "f"=>3, "g"=>9}
-
- h.invert #=> {2=>"d", 3=>"f", 9=>"g"}
- h.inverse #=> {2=>"d", 3=>["f", "c", "b", "a"], 9=>["g", "e"]}
- h.inverse.inverse #=> {"a"=>3, "b"=>3, "c"=>3, "d"=>2, "e"=>9, "f"=>3, "g"=>9}
- h.inverse.inverse == h #=> true
-
- CREDIT: Tilo Sloboda
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000208_source')" id="l_M000208_source">show source</a> ]</p>
- <div id="M000208_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/inverse.rb, line 14</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inverse</span>
- <span class="ruby-identifier">i</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each_pair</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">if</span> (<span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span>)
- <span class="ruby-identifier">v</span>.<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>[<span class="ruby-identifier">x</span>] = ( <span class="ruby-identifier">i</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">x</span>) <span class="ruby-operator">?</span> [<span class="ruby-identifier">k</span>,<span class="ruby-identifier">i</span>[<span class="ruby-identifier">x</span>]].<span class="ruby-identifier">flatten</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">k</span> ) }
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">i</span>[<span class="ruby-identifier">v</span>] = ( <span class="ruby-identifier">i</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">v</span>) <span class="ruby-operator">?</span> [<span class="ruby-identifier">k</span>,<span class="ruby-identifier">i</span>[<span class="ruby-identifier">v</span>]].<span class="ruby-identifier">flatten</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">k</span> )
- <span class="ruby-keyword kw">end</span>
- }
- <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">i</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000175"></a><b>join</b>(pair_divider='', elem_divider='')
- </div>
- <div class="description">
- <p>
Like Array#join but specialized to <a href="Hash.html">Hash</a>.
</p>
<pre>
CREDIT: Mauricio Fernandez
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000175_source')" id="l_M000175_source">show source</a> ]</p>
- <div id="M000175_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000120_source')" id="l_M000120_source">show source</a> ]</p>
+ <div id="M000120_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/join.rb, line 7</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">join</span>(<span class="ruby-identifier">pair_divider</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">elem_divider</span>=<span class="ruby-value str">''</span>)
<span class="ruby-identifier">s</span> = []
<span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{k}#{pair_divider}#{v}"</span> }
@@ -1721,100 +925,38 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000226"></a><b>join</b>(pair_divider='', elem_divider='')
+ <a name="M000087"></a><b>keys?</b>(*check_keys)
</div>
<div class="description">
<p>
-Like Array#join but specialized to <a href="Hash.html">Hash</a>.
-</p>
-<pre>
- CREDIT: Mauricio Fernandez
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000226_source')" id="l_M000226_source">show source</a> ]</p>
- <div id="M000226_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/join.rb, line 7</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">join</span>(<span class="ruby-identifier">pair_divider</span>=<span class="ruby-value str">''</span>, <span class="ruby-identifier">elem_divider</span>=<span class="ruby-value str">''</span>)
- <span class="ruby-identifier">s</span> = []
- <span class="ruby-identifier">each_pair</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">s</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{k}#{pair_divider}#{v}"</span> }
- <span class="ruby-identifier">s</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">elem_divider</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000194"></a><b>keys?</b>(*check_keys)
- </div>
- <div class="description">
- <p>
Alias for has_keys?
</p>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000143"></a><b>keys?</b>(*check_keys)
+ <a name="M000110"></a><b>mash!</b>(&yld)
</div>
<div class="description">
<p>
-Alias for has_keys?
-</p>
- </div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000216"></a><b>mash!</b>(&yld)
- </div>
- <div class="description">
- <p>
In place version of mash.
</p>
<pre>
NOTE: Hash#mash! is only useful for Hash. It is not generally
applicable to Enumerable.
</pre>
</div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000216_source')" id="l_M000216_source">show source</a> ]</p>
- <div id="M000216_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/mash.rb, line 10</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mash!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">mash</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>))
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000165"></a><b>mash!</b>(&yld)
- </div>
- <div class="description">
- <p>
-In place version of mash.
-</p>
-<pre>
- NOTE: Hash#mash! is only useful for Hash. It is not generally
- applicable to Enumerable.
-</pre>
- </div>
<div class="aka">
This method is also aliased as
- <a href="Hash.html#M000166">graph!</a>
- <a href="Hash.html#M000217">graph!</a>
+ <a href="Hash.html#M000111">graph!</a>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000165_source')" id="l_M000165_source">show source</a> ]</p>
- <div id="M000165_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000110_source')" id="l_M000110_source">show source</a> ]</p>
+ <div id="M000110_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/mash.rb, line 10</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">mash!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>)
<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">mash</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">yld</span>))
<span class="ruby-keyword kw">end</span>
@@ -1822,41 +964,31 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000196"></a><b>only_keys?</b>(*check_keys)
+ <a name="M000089"></a><b>only_keys?</b>(*check_keys)
</div>
<div class="description">
<p>
Alias for has_only_keys?
</p>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000145"></a><b>only_keys?</b>(*check_keys)
+ <a name="M000103"></a><b>recursive_merge</b>(other)
</div>
<div class="description">
<p>
-Alias for has_only_keys?
-</p>
- </div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000158"></a><b>recursive_merge</b>(other)
- </div>
- <div class="description">
- <p>
-Same as Hash#merge but <a href="Hash.html#M000138">recursively</a> merges
+Same as Hash#merge but <a href="Hash.html#M000082">recursively</a> merges
sub-hashes.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000158_source')" id="l_M000158_source">show source</a> ]</p>
- <div id="M000158_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000103_source')" id="l_M000103_source">show source</a> ]</p>
+ <div id="M000103_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 5</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">hash</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
@@ -1873,53 +1005,22 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000209"></a><b>recursive_merge</b>(other)
+ <a name="M000104"></a><b>recursive_merge!</b>(other)
</div>
<div class="description">
<p>
-Same as Hash#merge but <a href="Hash.html#M000138">recursively</a> merges
+Same as Hash#merge! but <a href="Hash.html#M000082">recursively</a> merges
sub-hashes.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000209_source')" id="l_M000209_source">show source</a> ]</p>
- <div id="M000209_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000104_source')" id="l_M000104_source">show source</a> ]</p>
+ <div id="M000104_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 5</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">hash</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">dup</span>
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">myval</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">recursive_merge</span>(<span class="ruby-identifier">value</span>)
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">hash</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000210"></a><b>recursive_merge!</b>(other)
- </div>
- <div class="description">
- <p>
-Same as Hash#merge! but <a href="Hash.html#M000138">recursively</a> merges
-sub-hashes.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000210_source')" id="l_M000210_source">show source</a> ]</p>
- <div id="M000210_source" class="dyn-source">
-<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 20</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge!</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">myval</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
@@ -1934,56 +1035,26 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000159"></a><b>recursive_merge!</b>(other)
+ <a name="M000082"></a><b>recursively</b>() {|h| ...}
</div>
<div class="description">
<p>
-Same as Hash#merge! but <a href="Hash.html#M000138">recursively</a> merges
-sub-hashes.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000159_source')" id="l_M000159_source">show source</a> ]</p>
- <div id="M000159_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/recursive_merge.rb, line 20</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursive_merge!</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">myval</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>]
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&&</span> <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">myval</span>.<span class="ruby-identifier">recursive_merge!</span>(<span class="ruby-identifier">value</span>)
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000189"></a><b>recursively</b>() {|h| ...}
- </div>
- <div class="description">
- <p>
-Apply a block to hash, and <a href="Hash.html#M000138">recursively</a>
+Apply a block to hash, and <a href="Hash.html#M000082">recursively</a>
apply that block to each subhash.
</p>
<pre>
h = {:a=>1, :b=>{:b1=>1, :b2=>2}}
h.recursively{|h| h.rekey(&:to_s) }
=> {"a"=>1, "b"=>{"b1"=>1, "b2"=>2}}
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000189_source')" id="l_M000189_source">show source</a> ]</p>
- <div id="M000189_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000082_source')" id="l_M000082_source">show source</a> ]</p>
+ <div id="M000082_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 10</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-identifier">h</span> = <span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, (<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)<span class="ruby-operator">|</span>
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
@@ -1999,83 +1070,32 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000138"></a><b>recursively</b>() {|h| ...}
+ <a name="M000083"></a><b>recursively!</b>(&block)
</div>
- <div class="description">
- <p>
-Apply a block to hash, and <a href="Hash.html#M000138">recursively</a>
-apply that block to each subhash.
-</p>
-<pre>
- h = {:a=>1, :b=>{:b1=>1, :b2=>2}}
- h.recursively{|h| h.rekey(&:to_s) }
- => {"a"=>1, "b"=>{"b1"=>1, "b2"=>2}}
-</pre>
- </div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000138_source')" id="l_M000138_source">show source</a> ]</p>
- <div id="M000138_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000083_source')" id="l_M000083_source">show source</a> ]</p>
+ <div id="M000083_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 10</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-identifier">h</span> = <span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, (<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)<span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>.<span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">hash</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000190"></a><b>recursively!</b>(&block)
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000190_source')" id="l_M000190_source">show source</a> ]</p>
- <div id="M000190_source" class="dyn-source">
-<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 24</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>))
<span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000139"></a><b>recursively!</b>(&block)
+ <a name="M000123"></a><b>rekey</b>(*args, &block)
</div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000139_source')" id="l_M000139_source">show source</a> ]</p>
- <div id="M000139_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/recursively.rb, line 24</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recursively!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">recursively</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>))
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000229"></a><b>rekey</b>(*args, &block)
- </div>
<div class="description">
<p>
-<a href="Hash.html#M000178">rekey</a>(to_key, from_key) <a
-href="Hash.html#M000178">rekey</a>{ |key| … }
+<a href="Hash.html#M000123">rekey</a>(to_key, from_key) <a
+href="Hash.html#M000123">rekey</a>{ |key| … }
</p>
<p>
If two keys are given, then the second key is changed to the first.
</p>
<pre>
@@ -2097,12 +1117,12 @@
CREDIT: Trans
CREDIT: Gavin Kistner
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000229_source')" id="l_M000229_source">show source</a> ]</p>
- <div id="M000229_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000123_source')" id="l_M000123_source">show source</a> ]</p>
+ <div id="M000123_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 27</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-keyword kw">end</span>
@@ -2110,59 +1130,15 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000178"></a><b>rekey</b>(*args, &block)
+ <a name="M000124"></a><b>rekey!</b>(*args, &block)
</div>
<div class="description">
<p>
-<a href="Hash.html#M000178">rekey</a>(to_key, from_key) <a
-href="Hash.html#M000178">rekey</a>{ |key| … }
-</p>
-<p>
-If two keys are given, then the second key is changed to the first.
-</p>
-<pre>
- foo = { :a=>1, :b=>2 }
- foo.rekey('a',:a) #=> { 'a'=>1, :b=>2 }
- foo.rekey('b',:b) #=> { 'a'=>1, 'b'=>2 }
- foo.rekey('foo','bar') #=> { 'a'=>1, 'b'=>2 }
-</pre>
-<p>
-If a block is given, converts all keys in the <a href="Hash.html">Hash</a>
-accroding to the given block. If the block returns <tt>nil</tt> for given
-key, then that key will be left intact.
-</p>
-<pre>
- foo = { :name=>'Gavin', :wife=>:Lisa }
- foo.rekey{ |k| k.to_s } #=> { "name"=>"Gavin", "wife"=>:Lisa }
- foo.inspect #=> { :name =>"Gavin", :wife=>:Lisa }
-
- CREDIT: Trans
- CREDIT: Gavin Kistner
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000178_source')" id="l_M000178_source">show source</a> ]</p>
- <div id="M000178_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 27</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000230"></a><b>rekey!</b>(*args, &block)
- </div>
- <div class="description">
- <p>
-Synonym for <a href="Hash.html#M000178">Hash#rekey</a>, but modifies the
+Synonym for <a href="Hash.html#M000123">Hash#rekey</a>, but modifies the
receiver in place (and returns it).
</p>
<pre>
foo = { :name=>'Gavin', :wife=>:Lisa }
foo.rekey!{ |k| k.to_s } #=> { "name"=>"Gavin", "wife"=>:Lisa }
@@ -2171,12 +1147,12 @@
CREDIT: Trans
CREDIT: Gavin Kistner
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000230_source')" id="l_M000230_source">show source</a> ]</p>
- <div id="M000230_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000124_source')" id="l_M000124_source">show source</a> ]</p>
+ <div id="M000124_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 40</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
<span class="ruby-comment cmt"># for backward comptability (TODO: DEPRECATE).</span>
<span class="ruby-identifier">block</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_sym</span>.<span class="ruby-identifier">to_proc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
@@ -2198,70 +1174,26 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000179"></a><b>rekey!</b>(*args, &block)
+ <a name="M000079"></a><b>replace_each</b>( {|| ...}
</div>
<div class="description">
<p>
-Synonym for <a href="Hash.html#M000178">Hash#rekey</a>, but modifies the
-receiver in place (and returns it).
-</p>
-<pre>
- foo = { :name=>'Gavin', :wife=>:Lisa }
- foo.rekey!{ |k| k.to_s } #=> { "name"=>"Gavin", "wife"=>:Lisa }
- foo.inspect #=> { "name"=>"Gavin", "wife"=>:Lisa }
-
- CREDIT: Trans
- CREDIT: Gavin Kistner
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000179_source')" id="l_M000179_source">show source</a> ]</p>
- <div id="M000179_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/rekey.rb, line 40</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rekey!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
- <span class="ruby-comment cmt"># for backward comptability (TODO: DEPRECATE).</span>
- <span class="ruby-identifier">block</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>.<span class="ruby-identifier">to_sym</span>.<span class="ruby-identifier">to_proc</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
- <span class="ruby-comment cmt"># if no args use block.</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
- <span class="ruby-identifier">block</span> = <span class="ruby-identifier">lambda</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span> <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span>} <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block</span>
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">nk</span> = <span class="ruby-identifier">block</span>[<span class="ruby-identifier">k</span>]
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">nk</span>]=<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">nk</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"3 for 2"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>
- <span class="ruby-identifier">to</span>, <span class="ruby-identifier">from</span> = <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">to</span>] = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">from</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">from</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000135"></a><b>replace_each</b>( {|| ...}
- </div>
- <div class="description">
- <p>
-Same as <a href="Hash.html#M000132">update_each</a>, but deletes the key
+Same as <a href="Hash.html#M000076">update_each</a>, but deletes the key
element first.
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000135_source')" id="l_M000135_source">show source</a> ]</p>
- <div id="M000135_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000079_source')" id="l_M000079_source">show source</a> ]</p>
+ <div id="M000079_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 66</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 55</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replace_each</span> <span class="ruby-comment cmt"># :yield:</span>
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
<span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
<span class="ruby-keyword kw">end</span>
@@ -2271,43 +1203,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000186"></a><b>replace_each</b>( {|| ...}
+ <a name="M000091"></a><b>reverse_merge</b>(other)
</div>
<div class="description">
<p>
-Same as <a href="Hash.html#M000132">update_each</a>, but deletes the key
-element first.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000186_source')" id="l_M000186_source">show source</a> ]</p>
- <div id="M000186_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 66</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replace_each</span> <span class="ruby-comment cmt"># :yield:</span>
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">k</span>)
- <span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000147"></a><b>reverse_merge</b>(other)
- </div>
- <div class="description">
- <p>
Allows for reverse merging where its the keys in the calling hash that wins
over those in the <tt>other_hash</tt>. This is particularly useful for
initializing an incoming option hash with default values:
</p>
<pre>
@@ -2319,12 +1222,12 @@
The default :size and :velocity is only set if the <tt>options</tt> passed
in doesn‘t already have those keys set.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000147_source')" id="l_M000147_source">show source</a> ]</p>
- <div id="M000147_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000091_source')" id="l_M000091_source">show source</a> ]</p>
+ <div id="M000091_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 15</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
<span class="ruby-keyword kw">end</span>
@@ -2332,57 +1235,24 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000198"></a><b>reverse_merge</b>(other)
+ <a name="M000092"></a><b>reverse_merge!</b>(other)
</div>
<div class="description">
<p>
-Allows for reverse merging where its the keys in the calling hash that wins
-over those in the <tt>other_hash</tt>. This is particularly useful for
-initializing an incoming option hash with default values:
+Inplace form of <a href="Hash.html#M000091">reverse_merge</a>.
</p>
-<pre>
- def setup(options = {})
- options.reverse_merge! :size => 25, :velocity => 10
- end
-</pre>
-<p>
-The default :size and :velocity is only set if the <tt>options</tt> passed
-in doesn‘t already have those keys set.
-</p>
</div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000198_source')" id="l_M000198_source">show source</a> ]</p>
- <div id="M000198_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 15</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000148"></a><b>reverse_merge!</b>(other)
- </div>
- <div class="description">
- <p>
-Inplace form of <a href="Hash.html#M000147">reverse_merge</a>.
-</p>
- </div>
<div class="aka">
This method is also aliased as
- <a href="Hash.html#M000149">reverse_update</a>
- <a href="Hash.html#M000200">reverse_update</a>
+ <a href="Hash.html#M000093">reverse_update</a>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000148_source')" id="l_M000148_source">show source</a> ]</p>
- <div id="M000148_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000092_source')" id="l_M000092_source">show source</a> ]</p>
+ <div id="M000092_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 21</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">replace</span>(<span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>))
<span class="ruby-keyword kw">end</span>
@@ -2390,65 +1260,34 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000199"></a><b>reverse_merge!</b>(other)
+ <a name="M000093"></a><b>reverse_update</b>(other)
</div>
<div class="description">
<p>
-Inplace form of <a href="Hash.html#M000147">reverse_merge</a>.
+Alias for <a href="Hash.html#M000091">reverse_merge</a>!
</p>
</div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000199_source')" id="l_M000199_source">show source</a> ]</p>
- <div id="M000199_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/merge.rb, line 21</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reverse_merge!</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">reverse_merge</span>(<span class="ruby-identifier">other</span>))
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
</div>
-</div>
<div class="method">
<div class="title">
- <a name="M000200"></a><b>reverse_update</b>(other)
+ <a name="M000108"></a><b>select!</b>() {|k,v| ...}
</div>
<div class="description">
<p>
-Alias for <a href="Hash.html#M000147">reverse_merge</a>!
-</p>
- </div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000149"></a><b>reverse_update</b>(other)
- </div>
- <div class="description">
- <p>
-Alias for <a href="Hash.html#M000147">reverse_merge</a>!
-</p>
- </div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000163"></a><b>select!</b>() {|k,v| ...}
- </div>
- <div class="description">
- <p>
In-place version of Hash#select. The opposite of the built-in Hash#reject!.
</p>
<pre>
CREDIT Gavin Sinclair
CREDIT Noah Gibbs
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000163_source')" id="l_M000163_source">show source</a> ]</p>
- <div id="M000163_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000108_source')" id="l_M000108_source">show source</a> ]</p>
+ <div id="M000108_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/select.rb, line 9</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">select!</span>
<span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>) }
<span class="ruby-keyword kw">end</span>
@@ -2456,134 +1295,65 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000214"></a><b>select!</b>() {|k,v| ...}
+ <a name="M000121"></a><b>slice</b>(*keep_keys)
</div>
<div class="description">
<p>
-In-place version of Hash#select. The opposite of the built-in Hash#reject!.
-</p>
-<pre>
- CREDIT Gavin Sinclair
- CREDIT Noah Gibbs
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000214_source')" id="l_M000214_source">show source</a> ]</p>
- <div id="M000214_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/select.rb, line 9</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">select!</span>
- <span class="ruby-identifier">reject!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">not</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>) }
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000176"></a><b>slice</b>(*keep_keys)
- </div>
- <div class="description">
- <p>
Returns a new hash with only the given keys.
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000176_source')" id="l_M000176_source">show source</a> ]</p>
- <div id="M000176_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000121_source')" id="l_M000121_source">show source</a> ]</p>
+ <div id="M000121_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 7</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">h</span> = {}
- <span class="ruby-identifier">keep_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)
+<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 9</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
+ <span class="ruby-identifier">h</span> = {}
+ <span class="ruby-identifier">keep_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
+ <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)
+ <span class="ruby-keyword kw">end</span>
+ <span class="ruby-identifier">h</span>
<span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000227"></a><b>slice</b>(*keep_keys)
+ <a name="M000122"></a><b>slice!</b>(*keep_keys)
</div>
<div class="description">
<p>
-Returns a new hash with only the given keys.
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000227_source')" id="l_M000227_source">show source</a> ]</p>
- <div id="M000227_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 7</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">h</span> = {}
- <span class="ruby-identifier">keep_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">key</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000228"></a><b>slice!</b>(*keep_keys)
- </div>
- <div class="description">
- <p>
Replaces hash with a new hash having only the given keys. This return the
hash of keys removed.
</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000228_source')" id="l_M000228_source">show source</a> ]</p>
- <div id="M000228_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 18</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>))
- <span class="ruby-identifier">removed</span>
- <span class="ruby-keyword kw">end</span>
+ h = {:a=>1, :b=>2}
+ h.slice!(:a) #=> {:a=>1}
+ h #=> {:b=>2}
</pre>
</div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000177"></a><b>slice!</b>(*keep_keys)
- </div>
- <div class="description">
- <p>
-Replaces hash with a new hash having only the given keys. This return the
-hash of keys removed.
-</p>
- </div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000177_source')" id="l_M000177_source">show source</a> ]</p>
- <div id="M000177_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000122_source')" id="l_M000122_source">show source</a> ]</p>
+ <div id="M000122_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 18</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
- <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>))
- <span class="ruby-identifier">removed</span>
- <span class="ruby-keyword kw">end</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/slice.rb, line 24</span>
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">slice!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
+ <span class="ruby-identifier">removed</span> = <span class="ruby-identifier">except</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>)
+ <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">slice</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">keep_keys</span>))
+ <span class="ruby-identifier">removed</span>
+ <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000224"></a><b>swap!</b>(key1, key2)
+ <a name="M000118"></a><b>swap!</b>(key1, key2)
</div>
<div class="description">
<p>
Swap the values of a pair of keys in place.
</p>
@@ -2593,12 +1363,12 @@
<p>
CREDIT: Gavin Sinclair
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000224_source')" id="l_M000224_source">show source</a> ]</p>
- <div id="M000224_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000118_source')" id="l_M000118_source">show source</a> ]</p>
+ <div id="M000118_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/swap.rb, line 9</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">swap!</span>(<span class="ruby-identifier">key1</span>, <span class="ruby-identifier">key2</span>)
<span class="ruby-identifier">tmp</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>]
<span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key2</span>]
@@ -2609,66 +1379,36 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000173"></a><b>swap!</b>(key1, key2)
+ <a name="M000074"></a><b>to_h</b>()
</div>
<div class="description">
<p>
-Swap the values of a pair of keys in place.
-</p>
-<pre>
- {:a=>1,:b=>2}.swap!(:a,:b) #=> {:a=>2,:b=>1}
-</pre>
-<p>
-CREDIT: Gavin Sinclair
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000173_source')" id="l_M000173_source">show source</a> ]</p>
- <div id="M000173_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/swap.rb, line 9</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">swap!</span>(<span class="ruby-identifier">key1</span>, <span class="ruby-identifier">key2</span>)
- <span class="ruby-identifier">tmp</span> = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>]
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key1</span>] = <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key2</span>]
- <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">key2</span>] = <span class="ruby-identifier">tmp</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000129"></a><b>to_h</b>()
- </div>
- <div class="description">
- <p>
Return a rehashing of <em>self</em>.
</p>
<pre>
{"a"=>1,"b"=>2}.to_h #=> {"b"=>2,"a"=>1}
</pre>
<p>
CREDIT: Forian Gross
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000129_source')" id="l_M000129_source">show source</a> ]</p>
- <div id="M000129_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000074_source')" id="l_M000074_source">show source</a> ]</p>
+ <div id="M000074_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/to_hash.rb, line 54</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_h</span>; <span class="ruby-identifier">rehash</span>; <span class="ruby-keyword kw">end</span>
</pre>
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000160"></a><b>to_proc</b>()
+ <a name="M000105"></a><b>to_proc</b>()
</div>
<div class="description">
<p>
Constructs a <a href="Proc.html">Proc</a> object from a hash such that the
parameter of the <a href="Proc.html">Proc</a> is assigned the hash keys as
@@ -2684,12 +1424,12 @@
<p>
CREDIT: Trans
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000160_source')" id="l_M000160_source">show source</a> ]</p>
- <div id="M000160_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">show source</a> ]</p>
+ <div id="M000105_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 15</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc</span>
<span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
@@ -2702,65 +1442,27 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000211"></a><b>to_proc</b>()
+ <a name="M000106"></a><b>to_proc_with_reponse</b>()
</div>
<div class="description">
<p>
-Constructs a <a href="Proc.html">Proc</a> object from a hash such that the
-parameter of the <a href="Proc.html">Proc</a> is assigned the hash keys as
-attributes.
+A fault-tolerent version of <a href="Hash.html#M000105">to_proc</a>.
</p>
-<pre>
- h = { :a => 1 }
- p = h.to_proc
- o = OpenStruct.new
- p.call(o)
- o.a #=> 1
-</pre>
<p>
-CREDIT: Trans
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000211_source')" id="l_M000211_source">show source</a> ]</p>
- <div id="M000211_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 15</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc</span>
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">ke</span> = <span class="ruby-node">"#{k}="</span>
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">ke</span>, <span class="ruby-identifier">v</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000212"></a><b>to_proc_with_reponse</b>()
- </div>
- <div class="description">
- <p>
-A fault-tolerent version of <a href="Hash.html#M000160">to_proc</a>.
-</p>
-<p>
-It works just like <a href="Hash.html#M000160">to_proc</a>, but the block
+It works just like <a href="Hash.html#M000105">to_proc</a>, but the block
will make sure# the object responds to the assignment.
</p>
<p>
CREDIT: Trans
</p>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000212_source')" id="l_M000212_source">show source</a> ]</p>
- <div id="M000212_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000106_source')" id="l_M000106_source">show source</a> ]</p>
+ <div id="M000106_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 31</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc_with_reponse</span>
<span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
@@ -2773,47 +1475,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000161"></a><b>to_proc_with_reponse</b>()
+ <a name="M000119"></a><b>to_struct</b>(struct_name)
</div>
<div class="description">
<p>
-A fault-tolerent version of <a href="Hash.html#M000160">to_proc</a>.
-</p>
-<p>
-It works just like <a href="Hash.html#M000160">to_proc</a>, but the block
-will make sure# the object responds to the assignment.
-</p>
-<p>
-CREDIT: Trans
-</p>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000161_source')" id="l_M000161_source">show source</a> ]</p>
- <div id="M000161_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/to_proc.rb, line 31</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_proc_with_reponse</span>
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">ke</span> = <span class="ruby-node">"#{k}="</span>
- <span class="ruby-identifier">o</span>.<span class="ruby-identifier">__send__</span>(<span class="ruby-identifier">ke</span>, <span class="ruby-identifier">v</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">ke</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000174"></a><b>to_struct</b>(struct_name)
- </div>
- <div class="description">
- <p>
A method to convert a <a href="Hash.html">Hash</a> into a Struct.
</p>
<pre>
h = {:name=>"Dan","age"=>33,"rank"=>"SrA","grade"=>"E4"}
s = h.to_struct("Foo")
@@ -2824,12 +1493,12 @@
<pre>
CREDIT: Daniel Berger
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000174_source')" id="l_M000174_source">show source</a> ]</p>
- <div id="M000174_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000119_source')" id="l_M000119_source">show source</a> ]</p>
+ <div id="M000119_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/to_struct.rb, line 12</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_struct</span>(<span class="ruby-identifier">struct_name</span>)
<span class="ruby-constant">Struct</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">struct_name</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>).<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
<span class="ruby-keyword kw">end</span>
@@ -2837,45 +1506,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000225"></a><b>to_struct</b>(struct_name)
+ <a name="M000094"></a><b>traverse</b>(&b)
</div>
<div class="description">
<p>
-A method to convert a <a href="Hash.html">Hash</a> into a Struct.
-</p>
-<pre>
- h = {:name=>"Dan","age"=>33,"rank"=>"SrA","grade"=>"E4"}
- s = h.to_struct("Foo")
-</pre>
-<p>
-TODO: Is this robust enough considerd hashes aren‘t ordered?
-</p>
-<pre>
- CREDIT: Daniel Berger
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000225_source')" id="l_M000225_source">show source</a> ]</p>
- <div id="M000225_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/to_struct.rb, line 12</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_struct</span>(<span class="ruby-identifier">struct_name</span>)
- <span class="ruby-constant">Struct</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">struct_name</span>,<span class="ruby-operator">*</span><span class="ruby-identifier">keys</span>).<span class="ruby-identifier">new</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">values</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000201"></a><b>traverse</b>(&b)
- </div>
- <div class="description">
- <p>
Returns a new hash created by traversing the hash and its subhashes,
executing the given block on the key and value. The block should return a
2-element array of the form +[key, value]+.
</p>
<pre>
@@ -2895,12 +1533,12 @@
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000201_source')" id="l_M000201_source">show source</a> ]</p>
- <div id="M000201_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000094_source')" id="l_M000094_source">show source</a> ]</p>
+ <div id="M000094_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 18</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>)
<span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>)<span class="ruby-operator">|</span>
<span class="ruby-identifier">v</span> = ( <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span> <span class="ruby-value">? </span><span class="ruby-identifier">v</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">v</span> )
@@ -2913,60 +1551,15 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000150"></a><b>traverse</b>(&b)
+ <a name="M000095"></a><b>traverse!</b>(&b)
</div>
<div class="description">
<p>
-Returns a new hash created by traversing the hash and its subhashes,
-executing the given block on the key and value. The block should return a
-2-element array of the form +[key, value]+.
-</p>
-<pre>
- h = { "A"=>"A", "B"=>"B" }
- g = h.traverse { |k,v| [k.downcase, v] }
- g #=> { "a"=>"A", "b"=>"B" }
-</pre>
-<p>
-TODO: Contrast these to recursibely —we may not need both.
-</p>
-<p>
-TODO: Testing value to see if it is a <a href="Hash.html">Hash</a> also
-catches subclasses of <a href="Hash.html">Hash</a>.
-</p>
-<pre>
- This is probably not the right thing to do and should catch Hashes only (?)
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000150_source')" id="l_M000150_source">show source</a> ]</p>
- <div id="M000150_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 18</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>)
- <span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>)<span class="ruby-operator">|</span>
- <span class="ruby-identifier">v</span> = ( <span class="ruby-constant">Hash</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">v</span> <span class="ruby-value">? </span><span class="ruby-identifier">v</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">v</span> )
- <span class="ruby-identifier">nk</span>, <span class="ruby-identifier">nv</span> = <span class="ruby-identifier">b</span>[<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>]
- <span class="ruby-identifier">h</span>[<span class="ruby-identifier">nk</span>] = <span class="ruby-identifier">nv</span> <span class="ruby-comment cmt">#( Hash === v ? v.traverse(base,&b) : nv )</span>
- <span class="ruby-identifier">h</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000151"></a><b>traverse!</b>(&b)
- </div>
- <div class="description">
- <p>
-In place version of <a href="Hash.html#M000150">traverse</a>, which
+In place version of <a href="Hash.html#M000094">traverse</a>, which
traverses the hash and its subhashes, executing the given block on the key
and value.
</p>
<pre>
h = { "A"=>"A", "B"=>"B" }
@@ -2975,12 +1568,12 @@
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000151_source')" id="l_M000151_source">show source</a> ]</p>
- <div id="M000151_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000095_source')" id="l_M000095_source">show source</a> ]</p>
+ <div id="M000095_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 36</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>)
<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) )
<span class="ruby-keyword kw">end</span>
@@ -2988,58 +1581,28 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000202"></a><b>traverse!</b>(&b)
+ <a name="M000076"></a><b>update_each</b>( {|| ...}
</div>
<div class="description">
<p>
-In place version of <a href="Hash.html#M000150">traverse</a>, which
-traverses the hash and its subhashes, executing the given block on the key
-and value.
-</p>
-<pre>
- h = { "A"=>"A", "B"=>"B" }
- h.traverse! { |k,v| [k.downcase, v] }
- h #=> { "a"=>"A", "b"=>"B" }
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000202_source')" id="l_M000202_source">show source</a> ]</p>
- <div id="M000202_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/traverse.rb, line 36</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">traverse!</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>)
- <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">replace</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">traverse</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">b</span>) )
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000183"></a><b>update_each</b>( {|| ...}
- </div>
- <div class="description">
- <p>
Iterates through each pair and updates a the hash in place. This is
formally equivalent to mash! But does not use mash to accomplish the task.
-Hence <a href="Hash.html#M000132">update_each</a> is probably a touch
+Hence <a href="Hash.html#M000076">update_each</a> is probably a touch
faster.
</p>
<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000183_source')" id="l_M000183_source">show source</a> ]</p>
- <div id="M000183_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000076_source')" id="l_M000076_source">show source</a> ]</p>
+ <div id="M000076_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 23</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 12</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_each</span> <span class="ruby-comment cmt"># :yield:</span>
<span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
<span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
<span class="ruby-keyword kw">end</span>
<span class="ruby-keyword kw">self</span>
@@ -3048,44 +1611,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000132"></a><b>update_each</b>( {|| ...}
+ <a name="M000077"></a><b>update_keys</b>( {|| ...}
</div>
<div class="description">
<p>
-Iterates through each pair and updates a the hash in place. This is
-formally equivalent to mash! But does not use mash to accomplish the task.
-Hence <a href="Hash.html#M000132">update_each</a> is probably a touch
-faster.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000132_source')" id="l_M000132_source">show source</a> ]</p>
- <div id="M000132_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 23</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_each</span> <span class="ruby-comment cmt"># :yield:</span>
- <span class="ruby-identifier">dup</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">update</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span>))
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">self</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000133"></a><b>update_keys</b>( {|| ...}
- </div>
- <div class="description">
- <p>
Iterate over hash updating just the keys.
</p>
<pre>
h = {:a=>1, :b=>2}
h.update_keys{ |k| "#{k}!" }
@@ -3093,14 +1626,14 @@
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000133_source')" id="l_M000133_source">show source</a> ]</p>
- <div id="M000133_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000077_source')" id="l_M000077_source">show source</a> ]</p>
+ <div id="M000077_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 38</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 27</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_keys</span> <span class="ruby-comment cmt">#:yield:</span>
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">old_key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">old_key</span>), <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">old_key</span>)) }
<span class="ruby-keyword kw">else</span>
<span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_keys</span>)
@@ -3110,46 +1643,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000184"></a><b>update_keys</b>( {|| ...}
+ <a name="M000078"></a><b>update_values</b>( {|| ...}
</div>
<div class="description">
<p>
-Iterate over hash updating just the keys.
-</p>
-<pre>
- h = {:a=>1, :b=>2}
- h.update_keys{ |k| "#{k}!" }
- h #=> { "a!"=>1, "b!"=>2 }
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000184_source')" id="l_M000184_source">show source</a> ]</p>
- <div id="M000184_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 38</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_keys</span> <span class="ruby-comment cmt">#:yield:</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">old_key</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>(<span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">old_key</span>), <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">old_key</span>)) }
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_keys</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000185"></a><b>update_values</b>( {|| ...}
- </div>
- <div class="description">
- <p>
Iterate over hash updating just the values.
</p>
<pre>
h = {:a=>1, :b=>2}
h.update_values{ |v| v+1 }
@@ -3157,14 +1658,14 @@
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000185_source')" id="l_M000185_source">show source</a> ]</p>
- <div id="M000185_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000078_source')" id="l_M000078_source">show source</a> ]</p>
+ <div id="M000078_source" class="dyn-source">
<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 54</span>
+<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 43</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_values</span> <span class="ruby-comment cmt">#:yield:</span>
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
<span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">k</span>, <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">v</span>)) }
<span class="ruby-keyword kw">else</span>
<span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_values</span>)
@@ -3174,46 +1675,14 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000134"></a><b>update_values</b>( {|| ...}
+ <a name="M000117"></a><b>weave</b>(h)
</div>
<div class="description">
<p>
-Iterate over hash updating just the values.
-</p>
-<pre>
- h = {:a=>1, :b=>2}
- h.update_values{ |v| v+1 }
- h #=> { a:=>2, :b=>3 }
-
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000134_source')" id="l_M000134_source">show source</a> ]</p>
- <div id="M000134_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/update.rb, line 54</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_values</span> <span class="ruby-comment cmt">#:yield:</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
- <span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">k</span>, <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">v</span>)) }
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">to_enum</span>(<span class="ruby-identifier">:update_values</span>)
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000223"></a><b>weave</b>(h)
- </div>
- <div class="description">
- <p>
Weave is a very uniqe hash operator. I is designed to merge to complex
hashes in according to sensible, regular pattern. The effect is akin to
inheritance.
</p>
<p>
@@ -3253,12 +1722,12 @@
<pre>
CREDIT: Thomas Sawyer
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000223_source')" id="l_M000223_source">show source</a> ]</p>
- <div id="M000223_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000117_source')" id="l_M000117_source">show source</a> ]</p>
+ <div id="M000117_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/weave.rb, line 40</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weave</span>(<span class="ruby-identifier">h</span>)
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"Hash expected"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
<span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clone</span>
@@ -3303,143 +1772,22 @@
</div>
</div>
</div>
<div class="method">
<div class="title">
- <a name="M000172"></a><b>weave</b>(h)
+ <a name="M000097"></a><b>|</b>(other)
</div>
<div class="description">
<p>
-Weave is a very uniqe hash operator. I is designed to merge to complex
-hashes in according to sensible, regular pattern. The effect is akin to
-inheritance.
+Operator for <a href="Hash.html#M000091">reverse_merge</a>.
</p>
-<p>
-Two hashes are weaved together to produce a new hash. The two hashes need
-to be compatible according to the following rules for each node:
-</p>
<pre>
- <tt>
- hash, hash => hash (recursive +)
- hash, array => error
- hash, value => error
- array, hash => error
- array, array => array + array
- array, value => array << value
- value, hash => error
- value, array => array.unshift(valueB)
- value1, value2 => value2
- </tt>
-</pre>
-<p>
-Here is a basic example:
-</p>
-<pre>
- h1 = { :a => 1, :b => [ 1 ], :c => { :x => 1 } }
- => {:b=>[1], :c=>{:x=>1}, :a=>1}
-
- h2 = { :a => 2, :b => [ 2 ], :c => { :x => 2 } }
- => {:b=>[2], :c=>{:x=>2}, :a=>2}
-
- h1.weave(h2)
- => {:b=>[1, 2], :c=>{:x=>2}, :a=>2}
-</pre>
-<p>
-Weave follows the most expected pattern of unifying two complex hashes. It
-is especially useful for implementing overridable configuration schemes.
-</p>
-<pre>
- CREDIT: Thomas Sawyer
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000172_source')" id="l_M000172_source">show source</a> ]</p>
- <div id="M000172_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/weave.rb, line 40</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">weave</span>(<span class="ruby-identifier">h</span>)
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">"Hash expected"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">s</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clone</span>
- <span class="ruby-identifier">h</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
- <span class="ruby-identifier">node_is_hash</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">node_is_array</span> = <span class="ruby-identifier">node</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">s</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">k</span>)
- <span class="ruby-identifier">self_node_is_hash</span> = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Hash</span>)
- <span class="ruby-identifier">self_node_is_array</span> = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Array</span>)
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">self_node_is_hash</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">weave</span>(<span class="ruby-identifier">node</span>)
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">self_node_is_array</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">node</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">node</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">node_is_hash</span>
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-value str">'Incompatible hash addition'</span> <span class="ruby-comment cmt">#self[k] = node</span>
- <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">node_is_array</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">unshift</span>( <span class="ruby-identifier">node</span> )
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">node</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">end</span>
- <span class="ruby-keyword kw">else</span>
- <span class="ruby-identifier">s</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">node</span>
- <span class="ruby-keyword kw">end</span>
- }
- <span class="ruby-identifier">s</span>
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000153"></a><b>|</b>(other)
- </div>
- <div class="description">
- <p>
-Operator for <a href="Hash.html#M000147">reverse_merge</a>.
-</p>
-<pre>
CREDIT: Trans
</pre>
</div>
<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000153_source')" id="l_M000153_source">show source</a> ]</p>
- <div id="M000153_source" class="dyn-source">
-<pre>
-<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 36</span>
- <span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">other</span>)
- <span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
- <span class="ruby-keyword kw">end</span>
-</pre>
- </div>
-</div>
-</div>
-<div class="method">
- <div class="title">
- <a name="M000204"></a><b>|</b>(other)
- </div>
- <div class="description">
- <p>
-Operator for <a href="Hash.html#M000147">reverse_merge</a>.
-</p>
-<pre>
- CREDIT: Trans
-</pre>
- </div>
-<div class="sourcecode">
- <p class="source-link">[ <a href="javascript:toggleSource('M000204_source')" id="l_M000204_source">show source</a> ]</p>
- <div id="M000204_source" class="dyn-source">
+ <p class="source-link">[ <a href="javascript:toggleSource('M000097_source')" id="l_M000097_source">show source</a> ]</p>
+ <div id="M000097_source" class="dyn-source">
<pre>
<span class="ruby-comment cmt"># File lib/core/facets/hash/op.rb, line 36</span>
<span class="ruby-keyword kw">def</span> <span class="ruby-operator">|</span>(<span class="ruby-identifier">other</span>)
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>)
<span class="ruby-keyword kw">end</span>
\ No newline at end of file