On Sep 28, 8:08=A0pm, Josh Cheek <josh.ch... / gmail.com> wrote:

> While I'm not sure how I feel about this particular syntax, I think that
> better support for getting methods would have some fairly profound change=
s
> to Ruby code. Right now we think this isn't really worth it, because we
> don't really do things like this, because the syntax is awkward. But if i=
t
> were easier, I think we'd see a lot more of it.
>
> An example from yesterday, I wrote `File.open csv_name,
> &MembersFromCSV.method(:populate)`
>
> And I honestly almost took it out (and still might), because even though =
I
> think this is the right way to do it, it's cumbersome and you kind of hav=
e
> tolook at it and think about things for a while. The equivalent is
> `File.open(csv_name) { |file| MembersFromCSV.populate file }` but it's ki=
nd
> of obnoxious that you have to create a superfluous block that does nothin=
g
> but forward its arguments to the real target when you could pass the real
> target instead of the block if there were a bit better support for this s=
ort
> of thing.

I had a strong enough reaction to this that I started responding evne
before I knew what I wanted instead. Yes, it's somewhat obnoxious that
you have to create a superfluous block to forward the argument on.
It's less obnoxious to take the method and use #to_proc (via the &),
and it's partially syntax that's a problem there, or at least that it
looks odd because we're not used to it. But I couldn't think what
would be better. I'd like to see something like `File.open csv_name,
MembersFromCSV.method(:populate)`, but that could have its own
problems.

You know, I'm not at all a fan of stabby proc, and maybe more so now
that the arrow could be used here. Something like `File.open csv_name,
-> MembersFromCSV.method(:populate)` has some merit as far as looks
go. Maybe? Am I crazy?

Actually, I think I'm crazy. Just get used to & and #to_proc.

--
-yossef