[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