On Mon, 25 Aug 2003, Joseph Ryan wrote:
So, I know how to use find_method to get a method from an object; but is there any way to dynamically add a method to a class? Basically, I want to do something like this:
newclass P2, "Foo"
new P1, P2
addr I0, _Foo::somemethod
setmethod P1, "somemethod", I0
findmethod P0, P1, "somemethod"
invoke
So, how do I do it? :)
What's supposed to happen is that each class has a backing namespace, and methods all live in that namespace. Generally objects, no matter what their HLL class, will be PMCs that have subclassed (at the parrot level) ParrotObject.
Anyway, for a perl/python/ruby object of class Foo, to add a new method you'd just add a new sub/method name/PMC binding to the Foo namespace.
I'm a bit lost here; what does that mean? How do I do it? Does
.sub _Foo::somemethod print "Foo-ey goodness." .end
add "somemethod" to the "Foo" namespace? Or would it have to be:
.sub Foo::somemethod print "Foo-ey goodness." .end
Thanks for the reply,
- Joe