https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2009-12-31T02:44:53Z
Ruby Issue Tracking System
Ruby master - Feature #2540: Hash#contribute
https://bugs.ruby-lang.org/issues/2540?journal_id=7477
2009-12-31T02:44:53Z
znz (Kazuhiro NISHIYAMA)
<ul></ul><p>=begin</p>
<blockquote>
<p>そこで、Hashにキーと値を設定する追加のメソッドとして、Hash#contributeを提案いたします。<br>
機能は、selfを返す以外はHash#storeと同等です。</p>
</blockquote>
<p>新しいメソッドを追加しなくてもtapを使えば良いと思います。</p>
<blockquote>
<p>これを使うときは、injectを使って、1行で済むようになります。</p>
</blockquote>
<p>injectとの組み合わせならeach_with_objectを使う方が良いと思います。<br>
=end</p>
Ruby master - Feature #2540: Hash#contribute
https://bugs.ruby-lang.org/issues/2540?journal_id=7479
2009-12-31T14:55:49Z
cyross (Makoto Cyross)
cyross@po.twin.ne.jp
<ul></ul><p>=begin</p>
<blockquote>
<blockquote>
<p>そこで、Hashにキーと値を設定する追加のメソッドとして、Hash#contributeを提案いたします。<br>
機能は、selfを返す以外はHash#storeと同等です。</p>
</blockquote>
<p>新しいメソッドを追加しなくてもtapを使えば良いと思います。</p>
<blockquote>
<p>これを使うときは、injectを使って、1行で済むようになります。</p>
</blockquote>
<p>injectとの組み合わせならeach_with_objectを使う方が良いと思います。</p>
</blockquote>
<p>ご意見を反映してみました。</p>
<a name="baseマージするハッシュ"></a>
<h1 >base:マージするハッシュ<a href="#baseマージするハッシュ" class="wiki-anchor">¶</a></h1>
<a name="hashマージ対象ハッシュ"></a>
<h1 >hash:マージ対象ハッシュ<a href="#hashマージ対象ハッシュ" class="wiki-anchor">¶</a></h1>
<p>def merge2(base, hash = {})<br>
base.each_with_object(hash){|pair, r| r.tap{|tmp| tmp[pair[0]] = pair[1].kind_of?(Hash) ? merge2(pair[1], r[pair[0]].nil? ? {} : r[pair[0]]) : pair[1] }<br>
end</p>
<p>機能的にはこれで十分です。ありがとうございました。<br>
=end</p>
Ruby master - Feature #2540: Hash#contribute
https://bugs.ruby-lang.org/issues/2540?journal_id=7481
2009-12-31T19:39:31Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul><p>=begin</p>
<p>=end</p>