# 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