From: dblack@... Date: 2006-12-12T09:02:34+09:00 Subject: Re: Inserting surrounding scope into singelton method definition Hi -- On Tue, 12 Dec 2006, Sebastia wrote: > I have a sorted array (in this case, an ActiveRecord result set) that i want > to give awareness of its sorting state. I defined a singelton method on the > array but i can't figure out how to insert a value from the surrounding > scope. Below is the best i could come up with, but it seems quite horrid (and > using plain eval would be even worse i suppose). I seem to remember that > there was a better way... Anybody? > > Thanks, > Sebastian > > sort_term = "label" > results = User.find(:all, :order => sort_term) > > class << results > def sorted_by? > @sorted_by_term > end > end > > results.instance_variable_set("@sorted_by_term",sort_term) To get through the barrier of the class and def scopes, you can use class_eval and define_method: (class << results; self; end).class_eval do define_method(:sorted_by?, sort_term) end or something along those lines. David -- Q. What's a good holiday present for the serious Rails developer? A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black) aka The Ruby book for Rails developers! Q. Where can I get Ruby/Rails on-site training, consulting, coaching? A. Ruby Power and Light, LLC (http://www.rubypal.com)