Method: Lazy#lazy_reader

Defined in:
lib/grit/lazy.rb

#lazy_reader(*args) ⇒ Object



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

def lazy_reader(*args)
  args.each do |arg|
    ivar = "@#{arg}"
    define_method(arg) do
      if instance_variable_defined?(ivar)
        val = instance_variable_get(ivar)
        return val if val
      end
      instance_variable_set(ivar, (@lazy_source ||= lazy_source).send(arg))
    end
  end
end