class Enc::Cache::NodeCache
Public Class Methods
new(config)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 6 def initialize(config) ensure_cache_dir(config.get('jive_enc_cache_dir')) end
Public Instance Methods
delete!(hostname)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 30 def delete!(hostname) logger.debug("Deleting cache #{cache_path(hostname)}") File.delete(cache_path(hostname)) if File.exist?(cache_path(hostname)) end
exists?(hostname)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 10 def exists?(hostname) logger.debug("Checking to see if cache file #{cache_path(hostname)} exists") File.exist?(cache_path(hostname)) end
read(hostname)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 15 def read(hostname) logger.debug("Attempting to read cache #{cache_path(hostname)}") begin File.open(cache_path(hostname), 'r') { |file| Marshal.load(file.read)} rescue Errno::ENOENT logger.error("The node #{hostname} does not exist in the cache.") raise CacheDoesNotExist, "The node #{hostname} does not exist in the cache." end end
write(hostname, node)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 25 def write(hostname, node) logger.debug("Writing to cache #{cache_path(hostname)}") File.open(cache_path(hostname), 'w') { |file| file.write(Marshal.dump(node)) } end
Protected Instance Methods
cache_path(node)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 37 def cache_path(node) if node.is_a?String return "#{@cache_dir}/#{node}" end "#{@cache_dir}/#{node.get_hostname}" end
ensure_cache_dir(cache_dir)
click to toggle source
# File lib/enc/cache/node_cache.rb, line 44 def ensure_cache_dir(cache_dir) @cache_dir = cache_dir unless File.directory?(@cache_dir) logger.debug("Creating cache directory #{@cache_dir}") begin Dir.mkdir(@cache_dir) rescue => e raise UnableToCreateCacheDirectory, e end end end