[#25936] [Bug:1.9] [rubygems] $LOAD_PATH includes bin directory — Nobuyoshi Nakada <nobu@...>

Hi,

10 messages 2009/10/05

[#25943] Disabling tainting — Tony Arcieri <tony@...>

Would it make sense to have a flag passed to the interpreter on startup that

16 messages 2009/10/05

[#26028] [Bug #2189] Math.atanh(1) & Math.atanh(-1) should not raise an error — Marc-Andre Lafortune <redmine@...>

Bug #2189: Math.atanh(1) & Math.atanh(-1) should not raise an error

14 messages 2009/10/10

[#26222] [Bug #2250] IO::for_fd() objects' finalization dangerously closes underlying fds — Mike Pomraning <redmine@...>

Bug #2250: IO::for_fd() objects' finalization dangerously closes underlying fds

11 messages 2009/10/22

[#26244] [Bug #2258] Kernel#require inside rb_require() inside rb_protect() inside SysV context fails — Suraj Kurapati <redmine@...>

Bug #2258: Kernel#require inside rb_require() inside rb_protect() inside SysV context fails

24 messages 2009/10/22

[#26361] [Feature #2294] [PATCH] ruby_bind_stack() to embed Ruby in coroutine — Suraj Kurapati <redmine@...>

Feature #2294: [PATCH] ruby_bind_stack() to embed Ruby in coroutine

42 messages 2009/10/27

[#26371] [Bug #2295] segmentation faults — tomer doron <redmine@...>

Bug #2295: segmentation faults

16 messages 2009/10/27

[ruby-core:26341] Suggestion: #from_array

From: Magnus Holm <judofyr@...>
Date: 2009-10-26 22:28:46 UTC
List: ruby-core #26341
I just got a little idea five minutes ago while I was showering:

In 1.8 we have the annoying "problem" that { }.map/select/reject/sort
returns an Array. This has been fixed in 1.9, but if you have your own
class which includes Enumerable, they will still return an Array.
Basically you have two options:

1) Nothing at all, and let them return arrays
2) Overload them to make them return your class

So I was thinking, what if map was implemented like this:

def map
  new_object = self.class.new
  each { new_object.from_array(*yield) }
  new_object
end

Then every class could simply implement #from_array:

class Hash
  def from_array(key, value)
    self[key] = value
  end
end

Of course, it would have to check if the class has defined
#from_array, if not it would default back to the current behaviour.


What do you think? Something I'm missing; is there another way to
solve this problem?


//Magnus Holm

In This Thread

Prev Next