Project

General

Profile

Feature #9451

Updated by nobu (Nobuyoshi Nakada) almost 10 years ago

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. 

Back