[MacRuby-devel] When is a String not an NSString?
Thibault Martin-Lagardette
thibault.ml at gmail.com
Tue Jul 13 14:10:05 PDT 2010
In fact, there's already a track ticket for that (and I think that's the discussion Laurent was looking for):
http://www.macruby.org/trac/ticket/726
:-)
--
Thibault Martin-Lagardette
On Jul 13, 2010, at 13:02, Laurent Sansonetti wrote:
> Hi,
>
> I believe this has been discussed on trac already, although I can't seem to find the ticket.
>
> In short, this is expected behavior. A method added to the String class will only be available to strings created from Ruby. If you want a method to be available to all strings, add it to the NSString class. I do agree that this can be confusing behavior and maybe we can try to reduce the confusion somehow. This design was implemented in 0.6 and is the result of several debates. I personally didn't expect people would notice this :)
>
> Laurent
>
> On Jul 13, 2010, at 10:59 AM, Michael Jackson wrote:
>
>> This sounds like a bug to me. Have you filed a ticket?
>>
>> http://trac.macosforge.org/projects/ruby/newticket
>>
>> --
>> Michael Jackson
>> http://mjijackson.com
>> @mjijackson
>>
>>
>>
>> On Mon, Jul 12, 2010 at 6:02 PM, Henry Maddocks
>> <henry.maddocks at gmail.com> wrote:
>>> With respect to the following code
>>>
>>> 1 require 'test/unit'
>>> 2
>>> 3 class String
>>> 4 def my_method
>>> 5 "My Method " + self
>>> 6 end
>>> 7 end
>>> 8
>>> 9 class Test_Tumblr < Test::Unit::TestCase
>>> 10
>>> 11 def test_strings
>>> 12 cocoa_string = NSString::stringWithString("blah")
>>> 13 ruby_string = "Ruby String"
>>> 14
>>> 15 assert_equal String, cocoa_string.class
>>> 16 assert_equal String, ruby_string.class
>>> 17 assert_equal cocoa_string.class, ruby_string.class
>>> 18
>>> 19 assert ruby_string.respond_to?(:my_method), "ruby_string.respond_to?"
>>> 20 assert cocoa_string.respond_to?(:my_method), "cocoa_string.respond_to?"
>>> 21 end
>>> 22
>>> 23 end
>>>
>>>
>>> What is the expected result of line 20?
>>>
>>> On the one hand cocoa_string is an NSString so the monkey patch shouldn't have any effect, but on the other cocoa_string is claiming to be a ruby String.
>>>
>>> Henry
>>> _______________________________________________
>>> MacRuby-devel mailing list
>>> MacRuby-devel at lists.macosforge.org
>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>>
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20100713/8bb4e009/attachment.html>
More information about the MacRuby-devel
mailing list