From: Robert Feldt Date: 2001-12-14T19:03:29+09:00 Subject: [ruby-talk:28497] Re: Get classes from file On Fri, 14 Dec 2001, Wyss Clemens wrote: > straight-forward-approach: > ==== > classes_before = [] > ObjectSpace.each_object(Class) { |aClass| classes_before.push(aClass.name) } > > require "test" > > classes_after = [] > ObjectSpace.each_object(Class) { |aClass| classes_after.push(aClass.name) } > > new_classes = classes_after - classes_before > ==== > > Pretty sure there are "righter" ways to do this...but as Kent Beck says > 'make it run, make it right, make it fast' > An alternative might be along the lines: class Object @@new_classes = [] def Object.inherited(klass) @@new_classes.push klass end def Object.get_new_classes old, @@new_classes = @@new_classes, [] yield res = @@new_classes @@new_classes = old + @@new_classes res end end and then new_classes = Object.get_new_classes { require 'file' } but not thread-safe etc... /Robert Feldt