Module: Memonic::ClassMethods

Defined in:
lib/memonic.rb

Instance Method Summary collapse

Instance Method Details

#memoize(name, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/memonic.rb', line 21

def memoize(name, &block)
  define_method("__#{name}__", &block)
  class_eval <<-RUBY
    def #{name}
      @#{name} || begin
        if defined?(@#{name})
          @#{name}
        else
          @#{name} = __#{name}__
        end
      end
    end
  RUBY
end