[#85940] [Ruby trunk Bug#14578] Forking a child process inside of a mutex crashes the ruby interpreter — ben.govero@...
Issue #14578 has been reported by bengovero (Ben Govero).
3 messages
2018/03/05
[#86205] [Ruby trunk Feature#14618] Add display width method to String for CLI — aycabta@...
Issue #14618 has been reported by aycabta (aycabta .).
3 messages
2018/03/19
[#86366] Re: [ruby-cvs:70102] usa:r63008 (trunk): get rid of test error/failure on Windows introduced at r62955 — Eric Wong <normalperson@...>
usa@ruby-lang.org wrote:
3 messages
2018/03/28
[ruby-core:85978] [Ruby trunk Feature#14580] Hash#store accepts a block
From:
konstantin@...
Date:
2018-03-07 16:25:29 UTC
List:
ruby-core #85978
Issue #14580 has been updated by Soilent (Konstantin x).
Eregon (Benoit Daloze) wrote:
> What should happen if the given key doesn't exist in Hash?
> This looks like a compute-if-present operation.
Good question, thank you. I think, the result of default_proc or the default value should be yielded.
----------------------------------------
Feature #14580: Hash#store accepts a block
https://bugs.ruby-lang.org/issues/14580#change-70845
* Author: Soilent (Konstantin x)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
Given a hash
~~~ ruby
hash = { a: 2 }
~~~
I want to update a single value in the hash:
~~~ ruby
hash[:a] = hash[:a] + 42
hash[:a] #=> 44
~~~
But instead, I would like to have a method that yields the current value for a given key and associates the block result with the key (similar to Hash#update). I think that Hash#store can be extended to support a block arg.
~~~ ruby
hash.store(:a) { |val| val + 42 }
hash[:a] #=> 44
~~~
Or it can be something like this:
~~~ ruby
hash.transform_values(:a, :b) { |val| val + 42 }
hash[:a] #=> 44
~~~
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>