[Rubycocoa-devel 805] Re: Methods not found

アーカイブの一覧に戻る

Laurent Sansonetti lsans****@apple*****
Fri Mar 2 00:13:39 JST 2007


Might be a good idea :)

I also think that we should provide #length as an alias of #size (like  
the original Array does).

Laurent

On Mar 1, 2007, at 4:07 PM, Eloy Duran wrote:

> Nice work!
> Looks much better indeed.
> One thing though, I don't know if this is necessary,
> but should we also be able to pass a range to NSArray[] ?
> Right now it only supports a integer (index).
> Because it might be confusing to users that you are able
> to pass a index like in in ruby but not a range.
>
> What do you think?
>
> Eloy
>
> On 3/1/07, Laurent Sansonetti <lsans****@apple*****> wrote:
>> I profited of this to do a quick refactoring. The #to_a, #to_i and
>> #to_f methods in oc_wrapper.rb aren't really necessary anymore now (I
>> guess there were there for historical reasons). Also, in
>> oc_attachments*.rb, it's no longer needed to use sub modules as we  
>> can
>> add the methods on the fly directly to the right classes (which  
>> should
>> also be faster).
>>
>> Committed as r1610.
>>
>> Laurent
>>
>> On Mar 1, 2007, at 3:20 PM, Laurent Sansonetti wrote:
>>
>>
>>> Good catch! The following patch fixes the problem (so you can call
>>
>>> #to_a on an enumerator again):
>>
>>>
>>
>>> Index: framework/src/ruby/osx/objc/oc_wrapper.rb
>>
>>> ===================================================================
>>
>>> --- framework/src/ruby/osx/objc/oc_wrapper.rb    (revision 1606)
>>
>>> +++ framework/src/ruby/osx/objc/oc_wrapper.rb    (working copy)
>>
>>> @@ -66,14 +66,14 @@
>>
>>>     end
>>
>>>
>>
>>>     def to_a
>>
>>> -      if self.ocm_send(:isKindOfClass_, OSX::NSArray) != 0 then
>>
>>> +      if self.ocm_send(:isKindOfClass_, OSX::NSArray)
>>
>>>         ary = Array.new
>>
>>>         iter = self.ocm_send(:objectEnumerator)
>>
>>>         while obj = iter.ocm_send(:nextObject) do
>>
>>>           ary.push(obj)
>>
>>>         end
>>
>>>         ary
>>
>>> -      elsif self.ocm_send(:isKindOfClass_, OSX::NSEnumerator) != 0
>>
>>> then
>>
>>> +      elsif self.ocm_send(:isKindOfClass_, OSX::NSEnumerator)
>>
>>>         self.ocm_send(:allObjects).to_a
>>
>>>       else
>>
>>>         [ self ]
>>
>>>
>>
>>> Laurent
>>
>>>
>>
>>> On Mar 1, 2007, at 2:45 PM, Jacob Wallström wrote:
>>
>>>
>>
>>>
>>>> Hi Laurent,
>>
>>>
>>>>
>>
>>>
>>>> While preparing the demo for you I turned out to be mistaken. The
>>
>>>
>>>> whole line looked like this:
>>
>>>
>>>>
>>
>>>
>>>> session.changeEnumeratorForEntityNames([syncName]).to_a
>>
>>>
>>>>
>>
>>>
>>>> The changeEnumeratorForEntityNames method returns a NSEnumerator.  
>>>> For
>>
>>>
>>>> some reason the above call was working in RubyCocoa 0.4.3d2.  
>>>> Changing
>>
>>>
>>>> the code to
>>
>>>
>>>>
>>
>>>
>>>> session.changeEnumeratorForEntityNames([syncName]).allObjects
>>
>>>
>>>>
>>
>>>
>>>> made it work in RubyCocoa 1.0 too. Sorry about that.
>>
>>>
>>>>
>>
>>>
>>>> /Jacob
>>
>>>
>>>>
>>
>>>
>>>> On 28 feb 2007, at 16.48, Laurent Sansonetti wrote:
>>
>>>
>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> Hi Jacob,
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> This is a weird problem. At a glance ISDChangeEnumerator is a  
>>>>> valid
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> subclass of NSEnumerator so there is no reason why [-
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> objectEnumerator]
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> is called on it. Could you isolate this problem in a separate/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> distinct
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> project and send it to the list? I may be able to fix it if I can
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> reproduce it.
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> Thanks!
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> Laurent
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> On Feb 28, 2007, at 4:26 PM, Jacob Wallström wrote:
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> I'm trying out RubyCocoa pre-1.0 from the unstable branch (rev.
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> 1600). One problem I have run into is the following:
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Exception thrown: Can't get Objective-C method signature for
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> selector
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> 'objectEnumerator' of receiver #<OSX::ISDChangeEnumerator: 
>>>>>> 0x39d032
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> class='ISDChangeEnumerator' id=0x15cb3590>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> /Checkedout/JacobDocs/GhostAction/trunk/GhostAction/build/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Development/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Ghost Action.app/Contents/Frameworks/RubyCocoa.framework/ 
>>>>>> Resources/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> ruby/osx/objc/oc_wrapper.rb:63:in `ocm_send'
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> /Checkedout/JacobDocs/GhostAction/trunk/GhostAction/build/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Development/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Ghost Action.app/Contents/Frameworks/RubyCocoa.framework/ 
>>>>>> Resources/
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> ruby/osx/objc/oc_wrapper.rb:63:in `to_a'
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> I get it when I make the following call:
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> # session is a proper ISyncSession object
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> session
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> .changeEnumeratorForEntityNames(["com.apple.calendars.Calendar"])
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> The same code was working under 0.4.3d2 (I had imported the Sync
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Services classes myself), but when trying with pre-1.0 I get the
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> error above.
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> I'm grateful for any advice.
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Best regards,
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Jacob Wallström
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> http://ghostparksoftware.com
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> _______________________________________________
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Rubycocoa-devel mailing list
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> Rubyc****@lists*****
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>>>>
>>>>>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>>
>>>
>>>>
>>
>>>
>>>>
>>>>>
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> _______________________________________________
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> Rubycocoa-devel mailing list
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> Rubyc****@lists*****
>>
>>>
>>>>
>>
>>>
>>>>
>>>>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>>
>>>
>>>>
>>
>>>
>>>> _______________________________________________
>>
>>>
>>>> Rubycocoa-devel mailing list
>>
>>>
>>>> Rubyc****@lists*****
>>
>>>
>>>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>>
>>>
>>
>>> _______________________________________________
>>
>>> Rubycocoa-devel mailing list
>>
>>> Rubyc****@lists*****
>>
>>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>>
>> _______________________________________________
>> Rubycocoa-devel mailing list
>> Rubyc****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel
>>
> _______________________________________________
> Rubycocoa-devel mailing list
> Rubyc****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel




More information about the Rubycocoa-devel mailing list
アーカイブの一覧に戻る