I'd say that Lisp is still the paragon of metaprogrammable languages. However, be advised that "metaprogramming" in Lisp is so different than "metaprogramming" in Ruby, that you might give them different names. You can bend Lisp's syntax with macros, while Ruby relies on you manipulating scope and the object model.
Paolo Perrotta, Europe
Author of Metaprogramming Ruby
Lisp has CLOS, which has a MOP, and provides metaprogramming beyond macros. Lisp itself isn't intrinsically OO, so the distinction is somewhat apples-to-oranges. Once you add CLOS (itself implemented in CL), we're back at parity (IMO).
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com