From: Rod S. <rsc...@xm...> - 2007-11-03 17:18:12
|
I have the following Ruby code in my RubyCocoa app (in which I have mostly Objective-C with some Ruby). class BackpackReminder def CSS_class date = NSDateToRubyDateTime(self.date) now = DateTime.now days_from_now = date.jd - now.jd if days_from_now <= 30 then "day#{days_from_now}" else "month#{self.months_from_now}" end end end BackpackReminder is an Objective-C class, so I am reopening this class and adding the CSS_Class method. This worked fine in Tiger. When I run the app I get the following: 11/3/07 12:55:52 PM PackRat[1109] PageGenerator#generateHTML: OSX::OCMessageSendException: Can't get Objective-C method signature for selector 'CSS:class' of receiver #<OSX::BackpackReminder_BackpackReminder_:0x265a5c class='BackpackReminder' id=0x6115b0> 11/3/07 12:55:52 PM PackRat[1109] Exception raised during posting of notification. Ignored. exception: 'Can't get Objective-C method signature for selector 'CSS:class' of receiver #<OSX::BackpackReminder_BackpackReminder_:0x265a5c class='BackpackReminder' id=0x6115b0>' invoked observer method: '*** - [PackRatAppDelegate tableViewSelectionDidChange:]' observer: 0x6f3dd0 notification name: 'NSTableViewSelectionDidChangeNotification' If I rename the method and remove the underscore and rename it something like CSSClass, I get the same message (with the method name changed of course). Has something changed in the Leopard version of RubyCocoa that prevents you from reopening classes and adding methods? Rod Schmidt |
From: Laurent S. <lau...@gm...> - 2007-11-03 19:07:11
|
On Nov 3, 2007 1:18 PM, Rod Schmidt <rsc...@xm...> wrote: > I have the following Ruby code in my RubyCocoa app (in which I have > mostly Objective-C with some Ruby). > > class BackpackReminder > def CSS_class > date = NSDateToRubyDateTime(self.date) > now = DateTime.now > days_from_now = date.jd - now.jd > if days_from_now <= 30 then > "day#{days_from_now}" > else > "month#{self.months_from_now}" > end > end > end > > BackpackReminder is an Objective-C class, so I am reopening this class > and adding the CSS_Class method. This worked fine in Tiger. When I run > the app I get the following: > > 11/3/07 12:55:52 PM PackRat[1109] PageGenerator#generateHTML: > OSX::OCMessageSendException: Can't get Objective-C method signature > for selector 'CSS:class' of receiver > #<OSX::BackpackReminder_BackpackReminder_:0x265a5c > class='BackpackReminder' id=0x6115b0> > 11/3/07 12:55:52 PM PackRat[1109] Exception raised during posting of > notification. Ignored. exception: 'Can't get Objective-C method > signature for selector 'CSS:class' of receiver > #<OSX::BackpackReminder_BackpackReminder_:0x265a5c > class='BackpackReminder' id=0x6115b0>' invoked observer method: '*** - > [PackRatAppDelegate tableViewSelectionDidChange:]' observer: > 0x6f3dd0 notification name: 'NSTableViewSelectionDidChangeNotification' > > If I rename the method and remove the underscore and rename it > something like CSSClass, I get the same message (with the method name > changed of course). Has something changed in the Leopard version of > RubyCocoa that prevents you from reopening classes and adding methods? > No, nothing changed in this logic. However, most of the code that adds or overrides methods was ported to the ObjC 2.0 API, and maybe there is a regression in that area. I am nevertheless unable to reproduce this in a quick test. A few questions: 1/ Is the OSX module required? 2/ Does it also happen if you explicitly import the BackpackReminder class before doing the override? You can add ''OSX.ns_import : BackpackReminder'' at the beginning of the file to try that. 3/ Does the CSS_class method exists in the ObjC side? Thanks, Laurent |
From: Rod S. <rsc...@xm...> - 2007-11-03 19:56:45
|
The OSX module is required. I have imported the BackpackReminder class. 3) The CSS_class method does not exist on the ObjC side. One other piece of information is that BackpackReminder descends from NSManagedObject. Could CoreData be messing things up? The inheritance hierarchy is: NSManagedObject -> BackpackManagedObject -> BackpackReminder Rod On Nov 3, 2007, at 1:07 PM, Laurent Sansonetti wrote: > On Nov 3, 2007 1:18 PM, Rod Schmidt <rsc...@xm...> wrote: >> I have the following Ruby code in my RubyCocoa app (in which I have >> mostly Objective-C with some Ruby). >> >> class BackpackReminder >> def CSS_class >> date = NSDateToRubyDateTime(self.date) >> now = DateTime.now >> days_from_now = date.jd - now.jd >> if days_from_now <= 30 then >> "day#{days_from_now}" >> else >> "month#{self.months_from_now}" >> end >> end >> end >> >> BackpackReminder is an Objective-C class, so I am reopening this >> class >> and adding the CSS_Class method. This worked fine in Tiger. When I >> run >> the app I get the following: >> >> 11/3/07 12:55:52 PM PackRat[1109] PageGenerator#generateHTML: >> OSX::OCMessageSendException: Can't get Objective-C method signature >> for selector 'CSS:class' of receiver >> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >> class='BackpackReminder' id=0x6115b0> >> 11/3/07 12:55:52 PM PackRat[1109] Exception raised during posting of >> notification. Ignored. exception: 'Can't get Objective-C method >> signature for selector 'CSS:class' of receiver >> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >> class='BackpackReminder' id=0x6115b0>' invoked observer method: >> '*** - >> [PackRatAppDelegate tableViewSelectionDidChange:]' observer: >> 0x6f3dd0 notification name: >> 'NSTableViewSelectionDidChangeNotification' >> >> If I rename the method and remove the underscore and rename it >> something like CSSClass, I get the same message (with the method name >> changed of course). Has something changed in the Leopard version of >> RubyCocoa that prevents you from reopening classes and adding >> methods? >> > > No, nothing changed in this logic. However, most of the code that adds > or overrides methods was ported to the ObjC 2.0 API, and maybe there > is a regression in that area. > > I am nevertheless unable to reproduce this in a quick test. > > A few questions: > > 1/ Is the OSX module required? > > 2/ Does it also happen if you explicitly import the BackpackReminder > class before doing the override? You can add ''OSX.ns_import : > BackpackReminder'' at the beginning of the file to try that. > > 3/ Does the CSS_class method exists in the ObjC side? > > Thanks, > Laurent > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a > browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Rubycocoa-talk mailing list > Rub...@li... > https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk |
From: Eloy D. <elo...@gm...> - 2007-11-04 14:04:12
|
Hey Rod, I used to have a problem similar to this one. In my case I was unable to add/override instance methods, but was able to add/override class methods. Anyways, I have tried my code again to see if the problem still persisted in the current trunk, which it doesn't. Which version of RC are you using? The one that ships with Leopard? If so, could you give the trunk a try? Cheers, Eloy On 3 nov 2007, at 20:56, Rod Schmidt wrote: > The OSX module is required. > > I have imported the BackpackReminder class. > > 3) The CSS_class method does not exist on the ObjC side. > > One other piece of information is that BackpackReminder descends from > NSManagedObject. Could CoreData be messing things up? The inheritance > hierarchy is: > > NSManagedObject -> BackpackManagedObject -> BackpackReminder > > Rod > > On Nov 3, 2007, at 1:07 PM, Laurent Sansonetti wrote: > >> On Nov 3, 2007 1:18 PM, Rod Schmidt <rsc...@xm...> wrote: >>> I have the following Ruby code in my RubyCocoa app (in which I have >>> mostly Objective-C with some Ruby). >>> >>> class BackpackReminder >>> def CSS_class >>> date = NSDateToRubyDateTime(self.date) >>> now = DateTime.now >>> days_from_now = date.jd - now.jd >>> if days_from_now <= 30 then >>> "day#{days_from_now}" >>> else >>> "month#{self.months_from_now}" >>> end >>> end >>> end >>> >>> BackpackReminder is an Objective-C class, so I am reopening this >>> class >>> and adding the CSS_Class method. This worked fine in Tiger. When I >>> run >>> the app I get the following: >>> >>> 11/3/07 12:55:52 PM PackRat[1109] PageGenerator#generateHTML: >>> OSX::OCMessageSendException: Can't get Objective-C method signature >>> for selector 'CSS:class' of receiver >>> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >>> class='BackpackReminder' id=0x6115b0> >>> 11/3/07 12:55:52 PM PackRat[1109] Exception raised during posting of >>> notification. Ignored. exception: 'Can't get Objective-C method >>> signature for selector 'CSS:class' of receiver >>> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >>> class='BackpackReminder' id=0x6115b0>' invoked observer method: >>> '*** - >>> [PackRatAppDelegate tableViewSelectionDidChange:]' observer: >>> 0x6f3dd0 notification name: >>> 'NSTableViewSelectionDidChangeNotification' >>> >>> If I rename the method and remove the underscore and rename it >>> something like CSSClass, I get the same message (with the method >>> name >>> changed of course). Has something changed in the Leopard version of >>> RubyCocoa that prevents you from reopening classes and adding >>> methods? >>> >> >> No, nothing changed in this logic. However, most of the code that >> adds >> or overrides methods was ported to the ObjC 2.0 API, and maybe there >> is a regression in that area. >> >> I am nevertheless unable to reproduce this in a quick test. >> >> A few questions: >> >> 1/ Is the OSX module required? >> >> 2/ Does it also happen if you explicitly import the BackpackReminder >> class before doing the override? You can add ''OSX.ns_import : >> BackpackReminder'' at the beginning of the file to try that. >> >> 3/ Does the CSS_class method exists in the ObjC side? >> >> Thanks, >> Laurent >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Splunk Inc. >> Still grepping through log files to find problems? Stop. >> Now Search log events and configuration files using AJAX and a >> browser. >> Download your FREE copy of Splunk now >> http://get.splunk.com/ >> _______________________________________________ >> Rubycocoa-talk mailing list >> Rub...@li... >> https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a > browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Rubycocoa-talk mailing list > Rub...@li... > https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk |
From: Rod S. <rsc...@xm...> - 2007-11-04 16:49:12
|
I am using the one that ships with Leopard. Is it possible to install the trunk and keep things separate? I don't want to mess up my Leopard install. Also, I had to release to fix these bugs so I moved the methods back into Objective-C. Rod On Nov 4, 2007, at 7:03 AM, Eloy Duran wrote: > Hey Rod, > > I used to have a problem similar to this one. > In my case I was unable to add/override instance methods, but was able > to add/override class methods. > Anyways, I have tried my code again to see if the problem still > persisted in the current trunk, which it doesn't. > > Which version of RC are you using? The one that ships with Leopard? > If so, could you give the trunk a try? > > Cheers, > Eloy > > On 3 nov 2007, at 20:56, Rod Schmidt wrote: > >> The OSX module is required. >> >> I have imported the BackpackReminder class. >> >> 3) The CSS_class method does not exist on the ObjC side. >> >> One other piece of information is that BackpackReminder descends from >> NSManagedObject. Could CoreData be messing things up? The inheritance >> hierarchy is: >> >> NSManagedObject -> BackpackManagedObject -> BackpackReminder >> >> Rod >> >> On Nov 3, 2007, at 1:07 PM, Laurent Sansonetti wrote: >> >>> On Nov 3, 2007 1:18 PM, Rod Schmidt <rsc...@xm...> wrote: >>>> I have the following Ruby code in my RubyCocoa app (in which I have >>>> mostly Objective-C with some Ruby). >>>> >>>> class BackpackReminder >>>> def CSS_class >>>> date = NSDateToRubyDateTime(self.date) >>>> now = DateTime.now >>>> days_from_now = date.jd - now.jd >>>> if days_from_now <= 30 then >>>> "day#{days_from_now}" >>>> else >>>> "month#{self.months_from_now}" >>>> end >>>> end >>>> end >>>> >>>> BackpackReminder is an Objective-C class, so I am reopening this >>>> class >>>> and adding the CSS_Class method. This worked fine in Tiger. When I >>>> run >>>> the app I get the following: >>>> >>>> 11/3/07 12:55:52 PM PackRat[1109] PageGenerator#generateHTML: >>>> OSX::OCMessageSendException: Can't get Objective-C method signature >>>> for selector 'CSS:class' of receiver >>>> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >>>> class='BackpackReminder' id=0x6115b0> >>>> 11/3/07 12:55:52 PM PackRat[1109] Exception raised during posting >>>> of >>>> notification. Ignored. exception: 'Can't get Objective-C method >>>> signature for selector 'CSS:class' of receiver >>>> #<OSX::BackpackReminder_BackpackReminder_:0x265a5c >>>> class='BackpackReminder' id=0x6115b0>' invoked observer method: >>>> '*** - >>>> [PackRatAppDelegate tableViewSelectionDidChange:]' observer: >>>> 0x6f3dd0 notification name: >>>> 'NSTableViewSelectionDidChangeNotification' >>>> >>>> If I rename the method and remove the underscore and rename it >>>> something like CSSClass, I get the same message (with the method >>>> name >>>> changed of course). Has something changed in the Leopard version of >>>> RubyCocoa that prevents you from reopening classes and adding >>>> methods? >>>> >>> >>> No, nothing changed in this logic. However, most of the code that >>> adds >>> or overrides methods was ported to the ObjC 2.0 API, and maybe there >>> is a regression in that area. >>> >>> I am nevertheless unable to reproduce this in a quick test. >>> >>> A few questions: >>> >>> 1/ Is the OSX module required? >>> >>> 2/ Does it also happen if you explicitly import the BackpackReminder >>> class before doing the override? You can add ''OSX.ns_import : >>> BackpackReminder'' at the beginning of the file to try that. >>> >>> 3/ Does the CSS_class method exists in the ObjC side? >>> >>> Thanks, >>> Laurent >>> >>> ------------------------------------------------------------------------- >>> This SF.net email is sponsored by: Splunk Inc. >>> Still grepping through log files to find problems? Stop. >>> Now Search log events and configuration files using AJAX and a >>> browser. >>> Download your FREE copy of Splunk now >> http://get.splunk.com/ >>> _______________________________________________ >>> Rubycocoa-talk mailing list >>> Rub...@li... >>> https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk >> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Splunk Inc. >> Still grepping through log files to find problems? Stop. >> Now Search log events and configuration files using AJAX and a >> browser. >> Download your FREE copy of Splunk now >> http://get.splunk.com/ >> _______________________________________________ >> Rubycocoa-talk mailing list >> Rub...@li... >> https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a > browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > Rubycocoa-talk mailing list > Rub...@li... > https://lists.sourceforge.net/lists/listinfo/rubycocoa-talk |