[#18042] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — gdefty@...
Hi,
[#18052] Enumerators that know about a block — "David A. Black" <dblack@...>
Hi --
[#18086] Suggestion to change Time#to_s format to an official standard — Dirkjan Bussink <d.bussink@...>
Hello people,
[#18110] [Ruby 1.9 - Feature #403] (Open) Add support to Haiku — Anonymous <redmine@...>
Issue #403 has been reported by Anonymous.
[#18121] [Ruby 1.8.7 - Bug #405] (Open) ssl.rb:31: [BUG] Bus Error — Anonymous <redmine@...>
Issue #405 has been reported by Anonymous.
[#18130] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Brian Candler <B.Candler@...>
> Seriously though... Array.first is a noun.
[#18145] [PATCH] error.c (Init_Exception): Rename class "fatal" to "Fatal" — Otto Hilska <otto.hilska@...>
Hi,
Hi,
Nobuyoshi Nakada wrote:
Hi,
On Thu, Aug 7, 2008 at 1:37 AM, Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:
On Thu, Aug 7, 2008 at 15:48, Jeremy Kemper <jeremy@bitsweat.net> wrote:
[#18164] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — gdefty@...
In message "Re: [ruby-core:18133] Re: New array
[#18237] Severe problem with garbage collection — Bertram Scharpf <lists@...>
Hi,
[#18247] Thread#priority(=) will be obsolete — SASADA Koichi <ko1@...>
Hi,
[#18252] Re: result for mget [last:10 MIME/multipart] (1/1) (ruby-core ML) — "Giuseppe Bilotta" <giuseppe.bilotta@...>
>> We are planning to make Thread#priority(=) method as obsolete method
Hi,
[#18257] Definition of "Support levels", 1.9.1 supported platforms and recruitment for platform maintainers — "Yugui (Yuki Sonoda)" <yugui@...>
Hi, all.
HI! This answers the question that I asked a few days ago, thank you!
Hi,
Yukihiro Matsumoto wrote:
[#18263] Am I right that this is wrong? — "David A. Black" <dblack@...>
Hi --
Hi,
Hi --
On Wed, Aug 13, 2008 at 3:04 PM, David A. Black <dblack@rubypal.com> wrote:
[#18303] Ruby 1.8.6 yields 50%-100% performance gain when compiled at full optimization — kevin nolan <kpnolan@...>
After compiling Ruby 1.8.6 with '-O3 -mtune=K8 -march=K8' on an AMD 4800
kevin nolan:
On Sat, 2008-08-16 at 03:39 +0900, Shot (Piotr Szotkowski) wrote:
[#18314] [Bug #449] File.zero? returns true when given a directory on Windows — Anonymous <redmine@...>
Bug #449: File.zero? returns true when given a directory on Windows
Hi,
I submitted that original bug (first time using redmine :)). Here's some mo=
Hi,
Not at all - it means we're now free to do the right thing :)
On Mon, Aug 18, 2008 at 6:45 PM, John Lam (IRONRUBY)
[#18319] NEW Command: absolute_path() -- — "C.E. Thornton" <admin@...>
Core,
Hi,
Are you sure you didn't mean to use "~/oracle/bin"
Trans wrote:
[#18349] [Feature:1.9] autoload with a block — Nobuyoshi Nakada <nobu@...>
Hi,
[#18354] Retrieving bytecode for method — Michael Neumann <mneumann@...>
Hi,
[#18381] [Bug #496] DRb.start_service(nil) is very slow — Hongli Lai <redmine@...>
Bug #496: DRb.start_service(nil) is very slow
[#18387] [Bug:1.9] rubygems fails to cache spec file — "Yusuke ENDOH" <mame@...>
Hi,
[#18396] problems with test_io.rb on cygwin — Martin Duerst <duerst@...>
I have run into problems with test_io.rb on cygwin.
Hello,
[#18405] [Bug #512] String#% behavior — Federico Builes <redmine@...>
Bug #512: String#% behavior
[#18409] ruby-lang.org has old download links — Nate_Wiger@...
The download links here:
[#18414] DoS vulnerability in REXML — "Shugo Maeda" <shugo@...>
Hi,
[#18424] [Bug #528] Several ruby-mode.el improvements — Nathan Weizenbaum <redmine@...>
Bug #528: Several ruby-mode.el improvements
[ruby-core:18403] Re: [Feature #474] Hash#<<
On Aug 27, 9:32=A0am, Brian Candler <B.Cand...@pobox.com> wrote:
> But that breaks a lot of useful stuff. e.g.
>
> =A0 =A0a =3D File.open("/etc/passwd") { |f| f.map { |line| line.split(':'=
) } }
Right. My implementation is just a quick hack. And you make a good
point, this requires what Smalltalk calls 'species'. Dumb name IMO,
but anyhow it could be done in Ruby simple with an extra method or
class method (not sure which is best). So something like...
def IO.enumerator ; Array ; end
def map(&block)
o =3D self.class.enumerator.new
each{ |e| o << yield(e) }
o
end
> or
>
> =A0 =A0str =3D File.read("/etc/passwd")
> =A0 =A0a =3D str.map { |line| line.split(':') }
Not this case. String is no longer Enumerable.
Hmm... I wonder if the same should be so for IO now too. Eg.
a =3D File.open("/etc/passwd") { |f| f.each_line.map { |line|
line.split(':') } }
> That is: the contract for map is to run through an Enumerable and build t=
he
> results into an Array. It is not intended to run through an Enumerable an=
d
> to append the results into a new instance of whatever class that object
> originally was.
>
> It may not even be possible to create a new instance of that class, if th=
e
> initialize method requires arguments.
>
> Aside: I suppose you could have such a pattern if you explicitly provided
> the object to append to.
>
> =A0 module Enumerable
> =A0 =A0 def into(target=3D[], &blk)
> =A0 =A0 =A0 blk ||=3D lambda { |e| e }
> =A0 =A0 =A0 each { |e| target << blk[e] }
> =A0 =A0 =A0 target
> =A0 =A0 end
> =A0 end
>
> =A0 src =3D "one\ntwo\nthree\n"
> =A0 p src.into([])
> =A0 p src.into("") { |e| "*#{e}" }
> =A0 src.into($stdout) { |e| e.upcase } =A0 # process a line at a time
>
> =A0 data =3D ["one\n", "two\n", "three\n"]
> =A0 p data.into("")
>
> Perhaps even map itself could take the thing to write 'into' as an argume=
nt.
That's an interesting idea too actually. If map could take argument to
override the enumerator.
def map(o=3Dnil)
o ||=3D self.class.enumerator
...
Also, I point out that this addresses #select (and others?), which I
believe have now been overridden in Hash to return a Hash.
> You could also argue that Hash#update should accept any Enumerable as its
> argument, so you could write
>
> =A0 a =3D [[1,:one], [2,:two], [3,:three]]
> =A0 h =3D {}.update(a)
>
> to convert an associative array to a hash.
#to_h ?
> But I've never needed either construct. Probably these things belong in t=
he
> Facets library, if not there already.
Facets has #mash as a hash equivalent of #map. However, it's rarely
used simply because when we weigh having a dependency vs. just doing
it, you end up just doing it.... You say you don't have a need for it,
but I suspect you've do what we all do:
c.inject({}){ |h,e| ...
or the equivalent
h =3D {}; c.each{ |e| h ... }
> There is value in minimising the
> amount of magic in the core language, and there's a lot there already.
Not at all! I see it as removing "magic". Having to override methods
and add new ones to get desired behaviors --that's "magic". When
simple modifications to shared traits provides the same behaviors in
more concise and powerful ways, how can that not be good?
T.
PS. I finally found the ruby-talk thread! Ruby-Talk#256299, but I've
pretty much summed it up here.