Class: PuppetfileResolver::Cache::Persistent

Inherits:
Base
  • Object
show all
Defined in:
lib/puppetfile-resolver/cache/persistent.rb

Instance Method Summary collapse

Methods inherited from Base

#save

Constructor Details

#initialize(cache_directory) ⇒ Persistent

Returns a new instance of Persistent.



10
11
12
13
14
15
16
17
# 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

Instance Method Details

#exist?(name) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
# 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) ⇒ Object



26
27
28
29
30
31
32
33
34
# 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) ⇒ Object



36
37
38
39
40
41
# 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