Thanks, that worked immediately. Dan Mark Day wrote: > On May 16, 2007, at 1:49 PM, Dan Zwell wrote: > >> I have subclassed Array to add some features. I am redefining sort_by >> so that it does not return an Array but a Pairs (my subclass), but I >> cannot get the syntax for passing the blocks right. >> >> Here's my code: > <snip> >> alias_method :sort_by_old, :sort_by >> # PROBLEM here: >> def sort_by(&block) >> ary = self.sort_by_old {yield(block)} >> Pairs.new(ary) >> end > > Use this instead: > ary = self.sort_by_old(&block) > > >> p=Pairs["abcd", "efg", "hi", "j"] > => ["abcd", "efg", "hi", "j"] > >> p.class > => Pairs > >> q=p.sort_by{|x| x.length} > => ["j", "hi", "efg", "abcd"] > >> q.class > => Pairs > > -Mark > > >