Module ActiveSupport::Freezable
In: vendor/rails/activesupport/lib/active_support/memoizable.rb

Methods

Public Class methods

[Source]

    # File vendor/rails/activesupport/lib/active_support/memoizable.rb, line 8
 8:       def self.included(base)
 9:         base.class_eval do
10:           unless base.method_defined?(:freeze_without_memoizable)
11:             alias_method_chain :freeze, :memoizable
12:           end
13:         end
14:       end

Public Instance methods

[Source]

    # File vendor/rails/activesupport/lib/active_support/memoizable.rb, line 16
16:       def freeze_with_memoizable
17:         memoize_all unless frozen?
18:         freeze_without_memoizable
19:       end

[Source]

    # File vendor/rails/activesupport/lib/active_support/memoizable.rb, line 21
21:       def memoize_all
22:         methods.each do |m|
23:           if m.to_s =~ /^_unmemoized_(.*)/
24:             if method(m).arity == 0
25:               __send__($1)
26:             else
27:               ivar = MEMOIZED_IVAR.call($1)
28:               instance_variable_set(ivar, {})
29:             end
30:           end
31:         end
32:       end

[Source]

    # File vendor/rails/activesupport/lib/active_support/memoizable.rb, line 34
34:       def unmemoize_all
35:         methods.each do |m|
36:           if m.to_s =~ /^_unmemoized_(.*)/
37:             ivar = MEMOIZED_IVAR.call($1)
38:             instance_variable_get(ivar).clear if instance_variable_defined?(ivar)
39:           end
40:         end
41:       end

[Validate]