Class: Class

Inherits:
Object show all
Defined in:
lib/core_ext/class.rb

Instance Method Summary collapse

Instance Method Details

#attr_memo_accessor(name, memoization_block) ⇒ Object



9
10
11
12
# File 'lib/core_ext/class.rb', line 9

def attr_memo_accessor(name, memoization_block)
  attr_memo_reader(name, memoization_block)
  attr_writer name
end

#attr_memo_reader(name, memoization_block) ⇒ Object



2
3
4
5
6
7
# File 'lib/core_ext/class.rb', line 2

def attr_memo_reader(name, memoization_block)
  define_method(name) do
    instance_variable_get(:"@#{name}") ||
    instance_variable_set(:"@#{name}", instance_exec(&memoization_block))
  end
end