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 -~----------~----~----~----~------~----~------~--~---

