Project

General

Profile

Feature #14390

UnboundMethod#to_proc

Added by zverok (Victor Shepelev) almost 3 years ago. Updated over 2 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:85048]

Description

I believe that it could be somewhat useful to have UnboundMethod converted to proc (accepting the object to bind to, as a first argument).

Practical(ish) example, paired with Proc#rcurry proposal:

URLS.
  map(&Faraday.method(:get).rcurry[some_get_param: 'value']).
  map(&JSON.method(:parse).rcurry[symbolize_names: true]).
  map(&Hash.instance_method(:dig).rcurry[:foo :bar, :baz])

It is somewhat more verbose than a lot of alternative proposals for "shorthand of &method call with arguments", yet requires no changes in parser or language design. With some future shortcuts/operators for #method and #instance_method it can even become pretty short and look like an "idiom".

PS: For the reference, shorthand that was proposed and rejected several times (see #6483, #4146):

...map(&:dig(:foo :bar, :baz))

As it is indeed looks much shorter than my proposal, it raises a lot of question about what is that :dig(:foo :bar, :baz) and how it should be parsed and whether it can appear outside of &-calls.

Also available in: Atom PDF