ok thank you all , its now crystal clear that I need to follow Sven's
approach, or maybe do it manually creating a reset method.

On Wed, Jan 20, 2016 at 4:31 PM Dimitris Chloupis <kilon.al...@gmail.com>
wrote:

> Thank you for the info but I think I did not make myself clear because you
> say "remain nil"
>
> Ok Imagine a class SomeClass and that class has a variable we will call
> SomeVariable, class variable that is
> , there is no class initialize method, now that class has a method that is
> eventually called ,
> someMethod
>
> SomeVariable ifNil: [ SomeVariable := 'hello world']
>
> so when I decide to update this class via metacello loading the latest
> version from github ,  SomeVariable will have the value 'hello world'
>
> My question is , will SomeVariable after I do the update revert back to
> nil  or stay 'hello world' ?
>
> If your answer is no, and it stays 'hello world' then yes i need an
> initialize method and call it at update time.
>
> On Wed, Jan 20, 2016 at 2:54 PM Sven Van Caekenberghe <s...@stfx.eu>
> wrote:
>
>> They remain nil.
>>
>> That is why #initialize on the class side is needed.
>>
>> You can call that explicitly in a post load script, or rely on the class
>> loading mechanism that normally calls #initialize automatically when
>> loading a class. The warning is: this only happens when the *source* code
>> of the #initialize methods changes. So sometimes, you will have to touch
>> that method to force it.
>>
>> I hope that makes sense.
>>
>> See MCMethodDefinition>>#postloadOver:
>>
>> > On 20 Jan 2016, at 13:41, Dimitris Chloupis <kilon.al...@gmail.com>
>> wrote:
>> >
>> > So my question is this , I have a class with nil variables that are
>> lazy initialised only when needed the first time and of course they keep
>> their values from there on.
>> >
>> > Lets say I get the latest update from github via metacello over an
>> older update that I already have inside the image , do those variables
>> revert back to nil values ? or do they keep their values as they are ?
>>
>>
>>

Reply via email to