On Wed, Oct 21, 2009 at 3:31 AM, Conrad Taylor <[email protected]> wrote:

> On Wed, Oct 21, 2009 at 2:43 AM, codex1 <[email protected]> wrote:
>
>>
>> anyone?
>>
>> On Oct 7, 2:07 pm, codex1 <[email protected]> wrote:
>> > In The ActiveSupport memory_store.rb
>> >
>> > @@@
>> > def write(name, value, options = nil)
>> >         super
>> >         @data[name] = (value.duplicable? ? value.dup : value).freeze
>> >       end
>> > @@@
>> >
>>
>
The above is freezing the value and not the container, @data, for the value.
 You can simply try this for yourself using irb.

-Conrad


> > This function freezes everything that gets written, according to the
>> > ruby doc once an object is frozen it cannot be unfrozen later:
>> http://www.ruby-doc.org/core/classes/Object.html#M000356
>> >
>> > so when I read an object from cache
>> >
>> > @@@
>> > def read(name, options = nil)
>> >         super
>> >         @data[name]
>> >       end
>> > @@@
>> >
>> > how am I able to then write to it since its been frozen? Sorry I
>> > really don't get this and been trying to understand it since the patch
>> > was posted.
>> >
>> > Thanks
>>
>
> Where's the actual test case that invalidates this code?
>
> -Conrad
>
>
>>  >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to