[#64703] Add `Hash#fetch_at` (issue #10017) — Wojtek Mach <wojtek@...>
Hey guys
1 message
2014/09/01
[#64711] [ruby-trunk - Bug #10193] [Closed] TestIO#test_readpartial_locktmp fails randomly — nobu@...
Issue #10193 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/02
[#64744] [ruby-trunk - Bug #10202] [Open] TestBenchmark#test_realtime_output breaks on ARM — v.ondruch@...
Issue #10202 has been reported by Vit Ondruch.
3 messages
2014/09/03
[#64823] documenting constants — Xavier Noria <fxn@...>
I am writing a Rails guide about constant autoloading in Ruby on
5 messages
2014/09/07
[#64838] [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus — ko1@...
Issue #10212 has been reported by Koichi Sasada.
6 messages
2014/09/08
[#64858] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— Eric Wong <normalperson@...>
2014/09/08
rb_env_t may use a flexible array, helps a little even on my busy system:
[#64871] Re: [ruby-trunk - Bug #10212] [Open] MRI is not for lambda calculus
— SASADA Koichi <ko1@...>
2014/09/08
(2014/09/08 19:48), Eric Wong wrote:
[#64972] [ruby-trunk - Bug #10231] [Open] Process.detach(pid) defines new singleton classes every call — headius@...
Issue #10231 has been reported by Charles Nutter.
3 messages
2014/09/11
[#64980] [ruby-trunk - Bug #10212] MRI is not for lambda calculus — ko1@...
Issue #10212 has been updated by Koichi Sasada.
4 messages
2014/09/12
[#65142] [ruby-trunk - Feature #10267] [Open] Number of processors — akr@...
Issue #10267 has been reported by Akira Tanaka.
4 messages
2014/09/20
[#65144] Re: [ruby-trunk - Feature #10267] [Open] Number of processors
— Eric Wong <normalperson@...>
2014/09/20
akr@fsij.org wrote:
[#65210] [ruby-trunk - misc #10278] [Assigned] [RFC] st.c: use ccan linked list — nobu@...
Issue #10278 has been updated by Nobuyoshi Nakada.
3 messages
2014/09/22
[ruby-core:64814] [ruby-trunk - Feature #7793] New methods on Hash
From:
transfire@...
Date:
2014-09-06 16:14:46 UTC
List:
ruby-core #64814
Issue #7793 has been updated by Thomas Sawyer.
An issue with the name is that "map" semantically means to create an Array, i.e.`ahash.map{ |k,v| ... }` produces an Array. So `map_keys` would make sense to mean `ahash.map_keys{ |k| ... }` and produce an Array too. `Hash#map_pair` would just a synonym for `#map`, just as `#each_pair` is just a synonym for `#each`.
Facets has long had `Hash#rekey` and `Hash#revalue` (and in-place forms `Hash#rekey!` and `Hash#revalue!`). These names are concise and do not suffer this semantic issue. Note Facets doesn't have a `#remap` method (though I suppose it could) because it has Enumerable#mash, and it's alias #graph, which can create a Hash from any Enumerable object.
----------------------------------------
Feature #7793: New methods on Hash
https://bugs.ruby-lang.org/issues/7793#change-48695
* Author: Dominic Sisneros
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version: next minor
----------------------------------------
It would be nice to have the following methods added to hash
~~~ruby
h = { name: 'dominic', request: 'add the following methods', :why => 'convenience'}
h.map_v{|v| v.upcase}
#=> {:name=>"DOMINIC", :request=>"ADD THE FOLLOWING METHODS", :why=>"CONVENIENCE"}
h.map_k{|k| k.to_s}
#=> { "name"=> 'dominic', "request"=>"add the following methods', "why" => "convenience"}
h.map_kv{|k,v| [k.to_s, v.upcase]}
#=> { "name"=>"DOMINIC", "request"=>"ADD THE FOLLOWING METHODS", "why"=>"CONVENIENCE"}
class Hash
def map_v
reduce({}) do |result, array|
k,v = array
new_val = yield v
result.merge( k => new_val)
end
end
def map_k
reduce({}) do |result, array|
k,v = array
new_k = yield k
result.merge(new_k => v)
end
end
def map_kv
reduce({}) do |result, array|
new_k,new_v = yield array
result.merge(new_k => new_v)
end
end
end
--
https://bugs.ruby-lang.org/