Class: GitSme::Cache

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

Instance Method Summary collapse

Constructor Details

#initialize(name, enabled: true, directory: 'cache', file_prefix: '', file_suffix: '') ⇒ Cache

Returns a new instance of Cache.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/git_sme/cache.rb', line 7

def initialize(name, enabled: true, directory: 'cache', file_prefix: '', file_suffix: '')
  raise "Invalid cache name: [#{name}]" if name.nil? || name =~ /^\s+$/

  @name = name.gsub(/[^a-zA-Z-]/, '').strip
  @enabled = enabled
  @cache_directory = File.join(PREFERENCES_HOME, directory)
  @file_prefix = file_prefix
  @file_suffix = file_suffix

  FileUtils.mkdir_p(@cache_directory) unless File.exist?(@cache_directory)
end

Instance Method Details

#loadObject



19
20
21
22
23
# File 'lib/git_sme/cache.rb', line 19

def load
  return [] unless @enabled && File.exist?(cache_filename)

  YAML.load(File.read(cache_filename))
end

#save(data) ⇒ Object



25
26
27
28
29
# File 'lib/git_sme/cache.rb', line 25

def save(data)
  return unless @enabled

  File.open(cache_filename, 'w') { |f| f.write(YAML.dump(data)) }
end