You can dynamically define a class method for a class like so:
class Foo
end
bar = %q{def bar() \"bar!\" end}
Foo.instance_eval(bar)
But h
I guess I can't comment on Adrian's answer because I don't have enough cred, but his answer helped me.
What I found: undef seems to completely remove the method from existence, while remove_method removes it from that class, but it will still be defined on superclasses or other modules that have been extened on this class, etc.