T
ThoML
Hi,
I recently came came up with this piece of (monkey-inspired) code:
class String0 < String
def foo
123
end
end
Object.send :remove_const, :String
String = String0
This makes the following two statements work as intended:
p String0.new("foo").foo # => 123
p String.new("foo").foo # => 123
The following doesn't work though:
p "foo".foo
p eval %{"foo".foo}
undefined method `foo' for "foo":String (NoMethodError)
Has somebody an idea if it is possible to make the ruby parser use
the
new String class somehow? I assume there is no way to make this work
but
then: I'd be happy if somebody proves me wrong.
Regards,
Thomas.
I recently came came up with this piece of (monkey-inspired) code:
class String0 < String
def foo
123
end
end
Object.send :remove_const, :String
String = String0
This makes the following two statements work as intended:
p String0.new("foo").foo # => 123
p String.new("foo").foo # => 123
The following doesn't work though:
p "foo".foo
p eval %{"foo".foo}
undefined method `foo' for "foo":String (NoMethodError)
Has somebody an idea if it is possible to make the ruby parser use
the
new String class somehow? I assume there is no way to make this work
but
then: I'd be happy if somebody proves me wrong.
Regards,
Thomas.