Here's a little group method I just wrote on the Array class (and how to
use it) that might serve your purpose well:
class Array
def group
groups = {}
self.each do |e|
key = yield e
groups[key] ||= []
groups[key] << e
end
groups
end
end
class Foo
attr_accessor :year, :title
def initialize(year, title)
self.year = year
self.title = title
end
end
a = []
a << Foo.new(2006, 'Alpha')
a << Foo.new(2006, 'Beta')
a << Foo.new(2007, 'Gamma')
a << Foo.new(2008, 'Delta')
ag = a.group { |e| e.year }
ag.keys.sort.each do |year|
puts year
ag[year].each do |foo|
puts ' ' + foo.title
end
end
__END__
2006
Alpha
Beta
2007
Gamma
2008
Delta
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby