class GitSme::Cache

Public Class Methods

new(name, enabled: true, directory: 'cache', file_prefix: '', file_suffix: '') click to toggle source
# 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

Public Instance Methods

load() click to toggle source
# 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) click to toggle source
# 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

Private Instance Methods

cache_filename() click to toggle source
# File lib/git_sme/cache.rb, line 45
def cache_filename
  filename = @name

  File.join(@cache_directory, "#{prefix}#{filename}#{suffix}.yml")
end
prefix() click to toggle source
# File lib/git_sme/cache.rb, line 33
def prefix
  return '' if @file_prefix =~ /^\s*$/

  "#{@file_prefix}-"
end
suffix() click to toggle source
# File lib/git_sme/cache.rb, line 39
def suffix
  return '' if @file_suffix =~ /^\s*$/

  "-#{@file_suffix}"
end