Class: Zypper::Onlinesearch::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/zypper/onlinesearch/cache.rb

Overview

Handles the cached data.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(operation, engine) ⇒ Cache

Returns a new instance of Cache.



12
13
14
15
# File 'lib/zypper/onlinesearch/cache.rb', line 12

def initialize(operation, engine)
  @base_folder = File.join(Dir.home, ".cache", "zypper-onlinesearch", engine, operation)
  FileUtils.mkdir_p @base_folder
end

Class Method Details

.reset!Object

Raises:



30
31
32
33
34
35
36
37
# File 'lib/zypper/onlinesearch/cache.rb', line 30

def self.reset!
  base_folder = File.join(Dir.home, ".cache", "zypper-onlinesearch")
  raise EmptyCache unless Dir.exist? base_folder

  size = Dir.glob(File.join(base_folder, "**", "*")).map { |f| File.size(f) }.inject(:+)
  FileUtils.remove_dir base_folder
  size
end

Instance Method Details

#exist?(query) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/zypper/onlinesearch/cache.rb', line 26

def exist?(query)
  File.exist?(File.join(@base_folder, query_to_filename(query)))
end

#get(query) ⇒ Object



21
22
23
24
# File 'lib/zypper/onlinesearch/cache.rb', line 21

def get(query)
  fname = query_to_filename(query)
  Marshal.load(File.read(File.join(@base_folder, fname))) if exist? query
end

#mtime(query) ⇒ Object



39
40
41
42
# File 'lib/zypper/onlinesearch/cache.rb', line 39

def mtime(query)
  fname = File.join(@base_folder, query_to_filename(query))
  File.mtime(fname) if File.exist? fname
end

#set(query, response) ⇒ Object



17
18
19
# File 'lib/zypper/onlinesearch/cache.rb', line 17

def set(query, response)
  File.write(File.join(@base_folder, query_to_filename(query)), Marshal.dump(response))
end