68: def cache(type, sum = nil)
69: return unless c = resource.catalog and c.host_config?
70: unless type
71: raise ArgumentError, "A type must be specified to cache a checksum"
72: end
73: type = symbolize(type)
74: type = :mtime if type == :timestamp
75: type = :ctime if type == :time
76:
77: unless state = @resource.cached(:checksums)
78: self.debug "Initializing checksum hash"
79: state = {}
80: @resource.cache(:checksums, state)
81: end
82:
83: if sum
84: unless sum =~ /\{\w+\}/
85: sum = "{%s}%s" % [type, sum]
86: end
87: state[type] = sum
88: else
89: return state[type]
90: end
91: end