From: shugo@... Date: 2014-02-01T23:21:48+00:00 Subject: [ruby-core:60414] [ruby-trunk - Feature #9451] [Assigned] Refinements and unary & (to_proc) Issue #9451 has been updated by Shugo Maeda. Category set to core Status changed from Open to Assigned Assignee changed from Shugo Maeda to Yukihiro Matsumoto Target version set to current: 2.2.0 I'd like to clarify the design policy rather than adding features ad hoc. All implicit method calls in syntactic constructs should be affected by refinements, right? Do other implementers, especially JRuby people, accept this policy? ---------------------------------------- Feature #9451: Refinements and unary & (to_proc) https://bugs.ruby-lang.org/issues/9451#change-44883 * Author: Jan Lelis * Status: Assigned * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: core * Target version: current: 2.2.0 ---------------------------------------- Not sure if this is a bug or feature request: 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. -- http://bugs.ruby-lang.org/