module Nuggets::Module::LazyAttrMixin

Public Instance Methods

lazy_accessor(name, options = {}, &block) click to toggle source
   # File lib/nuggets/module/lazy_attr_mixin.rb
33 def lazy_accessor(name, options = {}, &block)
34   attr_writer(attr = lazy_name(name, options))
35   lazy_reader(name, options, attr, &block)
36 end
lazy_attr(name, options = {}, attr = lazy_name(name, options), &block)
Alias for: lazy_reader
lazy_reader(name, options = {}, attr = lazy_name(name, options), &block) click to toggle source
   # File lib/nuggets/module/lazy_attr_mixin.rb
38 def lazy_reader(name, options = {}, attr = lazy_name(name, options), &block)
39   define_method(name) { lazy_attr(attr,
40     options.fetch(:freeze, true), &block) }
41 end
Also aliased as: lazy_attr

Private Instance Methods

lazy_name(name, options) click to toggle source
   # File lib/nuggets/module/lazy_attr_mixin.rb
47 def lazy_name(name, options)
48   options.fetch(:name) { name.to_s.sub(/\?\z/, '_p') }
49 end