class PuppetfileResolver::Cache::Persistent
Public Class Methods
new(cache_directory)
click to toggle source
Calls superclass method
PuppetfileResolver::Cache::Base::new
# File lib/puppetfile-resolver/cache/persistent.rb, line 10 def initialize(cache_directory) super require 'digest' require 'json' @cache_directory = cache_directory Dir.mkdir(@cache_directory) unless Dir.exist?(@cache_directory) end
Public Instance Methods
exist?(name)
click to toggle source
Calls superclass method
PuppetfileResolver::Cache::Base#exist?
# File lib/puppetfile-resolver/cache/persistent.rb, line 19 def exist?(name) result = super return result if result filename = File.join(@cache_directory, to_cache_name(name)) File.exist?(filename) end
load(name)
click to toggle source
Calls superclass method
PuppetfileResolver::Cache::Base#load
# File lib/puppetfile-resolver/cache/persistent.rb, line 26 def load(name) result = super return result unless result.nil? filename = File.join(@cache_directory, to_cache_name(name)) return nil unless File.exist?(filename) ::JSON.parse(File.open(filename, 'rb:utf-8') { |f| f.read }) end
persist(name, content_string)
click to toggle source
Calls superclass method
PuppetfileResolver::Cache::Base#persist
# File lib/puppetfile-resolver/cache/persistent.rb, line 36 def persist(name, content_string) super filename = File.join(@cache_directory, to_cache_name(name)) File.open(filename, 'wb:utf-8') { |f| f.write(content_string) } end
Private Instance Methods
to_cache_name(name)
click to toggle source
# File lib/puppetfile-resolver/cache/persistent.rb, line 45 def to_cache_name(name) ::Digest::SHA256.hexdigest(name) + '.txt' end