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