Method: MiniObject::Injectable#let
- Defined in:
- lib/mini_object/injectable.rb
#let(name, &block) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/mini_object/injectable.rb', line 54 def let name, &block var_name = :"@#{name}" define_singleton_method "#{name}=" do |value| instance_variable_set var_name, value end define_singleton_method name do if instance_variable_defined? var_name instance_variable_get var_name else instance_variable_set var_name, block.call(self) end end end |