# File lib/puppet/util/cacher.rb, line 41 41: def cached_attr(name, options = {}, &block) 42: init_method = "init_" + name.to_s 43: define_method(init_method, &block) 44: 45: define_method(name) do 46: cached_value(name) 47: end 48: 49: define_method(name.to_s + "=") do |value| 50: # Make sure the cache timestamp is set 51: cache_timestamp 52: value_cache[name] = value 53: end 54: 55: if ttl = options[:ttl] 56: set_attr_ttl(name, ttl) 57: end 58: end