[#33640] [Ruby 1.9-Bug#4136][Open] Enumerable#reject should not inherit the receiver's instance variables — Hiro Asari <redmine@...>

Bug #4136: Enumerable#reject should not inherit the receiver's instance variables

10 messages 2010/12/08

[#33667] [Ruby 1.9-Bug#4149][Open] Documentation submission: syslog standard library — mathew murphy <redmine@...>

Bug #4149: Documentation submission: syslog standard library

11 messages 2010/12/10

[#33683] [feature:trunk] Enumerable#categorize — Tanaka Akira <akr@...>

Hi.

14 messages 2010/12/12
[#33684] Re: [feature:trunk] Enumerable#categorize — "Martin J. Dst" <duerst@...> 2010/12/12

[#33687] Towards a standardized AST for Ruby code — Magnus Holm <judofyr@...>

Hey folks,

23 messages 2010/12/12
[#33688] Re: Towards a standardized AST for Ruby code — Charles Oliver Nutter <headius@...> 2010/12/12

On Sun, Dec 12, 2010 at 9:55 AM, Magnus Holm <judofyr@gmail.com> wrote:

[#33689] Re: Towards a standardized AST for Ruby code — "Haase, Konstantin" <Konstantin.Haase@...> 2010/12/12

On Dec 12, 2010, at 17:46 , Charles Oliver Nutter wrote:

[#33763] [Ruby 1.9-Bug#4168][Open] WeakRef is unsafe to use in Ruby 1.9 — Brian Durand <redmine@...>

Bug #4168: WeakRef is unsafe to use in Ruby 1.9

43 messages 2010/12/17

[#33815] trunk warnflags build issue with curb 0.7.9? — Jon <jon.forums@...>

As this may turn out to be a 3rd party issue rather than a bug, I'd like some feedback.

11 messages 2010/12/22

[#33833] Ruby 1.9.2 is going to be released — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

15 messages 2010/12/23

[#33846] [Ruby 1.9-Feature#4197][Open] Improvement of the benchmark library — Benoit Daloze <redmine@...>

Feature #4197: Improvement of the benchmark library

15 messages 2010/12/23

[#33910] [Ruby 1.9-Feature#4211][Open] Converting the Ruby and C API documentation to YARD syntax — Loren Segal <redmine@...>

Feature #4211: Converting the Ruby and C API documentation to YARD syntax

10 messages 2010/12/26

[#33923] [Ruby 1.9-Bug#4214][Open] Fiddle::WINDOWS == false on Windows — Jon Forums <redmine@...>

Bug #4214: Fiddle::WINDOWS == false on Windows

15 messages 2010/12/27

[ruby-core:33714] Re: [feature:trunk] Enumerable#categorize

From: Tanaka Akira <akr@...>
Date: 2010-12-14 09:41:29 UTC
List: ruby-core #33714
2010/12/12 "Martin J. Dst" <duerst@it.aoyama.ac.jp>:
>
> There are already such methods. At least group_by. Your proposal seems to be
> a very special way to convert an enumerable to a hash.

Enumerable#categorize is more general than Enumerable#group_by.

Enumerable#group_by can specify only hash keys.
It cannot specify hash values.

> I think I get the idea of how this is supposed to work. But I'm not sure
> what the actual use cases would be. Can you give some?

I see.

Assume a table as follows.

  ary = [
    ["matz", "Yukihiro Matsumoto"],
    ["nobu", "Nobuyoshi Nakada"],
    ["akr", "Tanaka Akira"],
    ["usa", "Usaku NAKAMURA"],
    ["naruse", "NARUSE, Yui"],
    ["ko1", "SASADA Koichi"]
  ]

Enumerable#categorize can be used to generate a hash
from the right elements to left elements.
(and left elements to right elements too.)

  pp ary.categorize {|e| [e[1], e[0]] }
  #=>
  {"Yukihiro Matsumoto"=>["matz"],
   "Nobuyoshi Nakada"=>["nobu"],
   "Tanaka Akira"=>["akr"],
   "Usaku NAKAMURA"=>["usa"],
   "NARUSE, Yui"=>["naruse"],
   "SASADA Koichi"=>["ko1"]}

Since Enumerable#group_by cannot specify hash values,
it cannot do it.

> Who will be able to remember exactly what these options are,...? Most other
> methods, in particular on Enumerables, don't have that many options. I think
> that's for a good reason.

I think option argument is adopted to ruby increasingly.
-- 
Tanaka Akira

In This Thread