I think "" is hard-wired to constructing String class objects, as the {}
is to creating Hash and [] is to creating Array.
Best regards,
Jari Williamsson
ThoML wrote:
> 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.
>
>
>