[ruby-core:77185] [Ruby trunk Feature#9451] Refinements and unary & (to_proc)
From:
matz@...
Date:
2016-09-07 07:29:56 UTC
List:
ruby-core #77185
Issue #9451 has been updated by Yukihiro Matsumoto.
I now think it's OK to accept this proposal. But I don't know how difficult to implement the issue.
Matz.
----------------------------------------
Feature #9451: Refinements and unary & (to_proc)
https://bugs.ruby-lang.org/issues/9451#change-60400
* Author: Jan Lelis
* Status: Assigned
* Priority: Normal
* Assignee: Yukihiro Matsumoto
----------------------------------------
Not sure if this is a bug or feature request:
~~~ruby
require 'minitest/autorun'
require 'set'
module ClassToProc
refine Class do
def to_proc
lambda{ |*args| self.new(*args) }
end
end
end
using ClassToProc
describe 'Class#to_proc' do
it 'works when called directly' do
Set.to_proc[[1,2]].must_equal Set[1,2]
end
it 'fails when called via ampersand' do
[[1,2]].map(&Set).must_equal [Set[1,2]]
end
end
~~~
The second example errors with *NoMethodError: super: no superclass method `to_proc' for Set:Class*
Would be great to have it, though.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>