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) why not just use an attr results = User.find :all, :order => sort_term class << results attr_accessor 'sorted_by' alias_method 'sorted_by?', 'sorted_by' end results.sorted_by = "label" othewise you need to use module_eval and define_method due to the scoping. -a -- if you want others to be happy, practice compassion. if you want to be happy, practice compassion. -- the dalai lama