[Rubycocoa-devel 1367] Re: kvc setter results in recursive loop

Back to archive index

Eloy Duran eloy.****@gmail*****
Thu Jul 3 06:52:38 JST 2008


Hi Kimura-san,

Awesome, domô arigtô gozaimasu!
I'll try it out once I get back from my holidays.

About your test for this, I don't want to be pedantic,
but I think that your test could be expressed better by something like:

assert_not_raises(StackLevelToDeep) do
   TestClass.class_eval do
     kvc_accessor :key1, :key2
   end
end

Anyways, just syntactically different :)

Cheers,
Eloy

On 2 jul 2008, at 19:28, kimura wataru wrote:

> Hi Eloy,
>
> I fixed this problem at trunk r2212.
> Invoking "kvc_writer <key>" multiple times for the same class-<key>
> broke the setter method.
>
> Your test code requires PassengerApplication.rb two times
> as 'PassengerApplication' and expanded full-path.
> So kvc_accessor was invoked two times and this problem occurred.
>
> Thanks,
>
> On Mon, 23 Jun 2008 17:33:21 +0200, Eloy Duran wrote:
>> Hi,
>>
>> I know this will probably be a waste of energy since most time is
>> spend on MacRuby, but here goes anyways.
>> I have used kvc_accessors etc on several apps in the past and it has
>> always not felt 100% right to me,
>> but I was too lazy to take a look at it. Most of the times if I  
>> needed
>> to do stuff with the variables I override #rbSetValue_forKey
>>
>> This has always managed me to be able to write working code, but
>> during testing it breaks horribly.
>> Today I was cleaning up some code and wanted to have all my tests run
>> in one go so I get nice output of the total tests passed/failed.
>> So what happens? The following is a small sample from endless  
>> recursion:
>>
>
>> I took a quick look at oc_import.rb, this is the method:
>>
>> If oc_import.rb:501 is patched like so it works:
>>
>
> _______________________________________________
> Rubycocoa-devel mailing list
> Rubyc****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/rubycocoa-devel




More information about the Rubycocoa-devel mailing list
Back to archive index