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