class FileCacheUtil

Public Class Methods

delete(type, key) click to toggle source
Calls superclass method CacheUtil::delete
# File lib/cache_driver/file_cache_util.rb, line 62
def delete(type, key)
  super type, key

  dir = file_dir.join type_to_dir(type)
  return true unless Dir.exist? dir

  file_path = dir.join("#{key}.cache")
  return true unless File.exist? file_path
  File.delete file_path
  true
end
read(type, key) click to toggle source
Calls superclass method CacheUtil::read
# File lib/cache_driver/file_cache_util.rb, line 17
def read(type, key)
  super type, key

  dir = file_dir.join type_to_dir(type)
  Dir.mkdir dir unless Dir.exist? dir

  file_path = dir.join("#{key}.cache")
  return nil unless File.exist? file_path
  file = File.new file_path, 'r'
  data_str = file.read.split(" --> ")[1]

  unless data_str
    puts "cache #{type} ##{key} data miss"
    return nil
  end

  data = JSON.parse data_str
  type_to_class(type).from_cache data
end
read_all(type) click to toggle source
Calls superclass method CacheUtil::read_all
# File lib/cache_driver/file_cache_util.rb, line 37
def read_all(type)
  super type

  dir = file_dir.join type_to_dir(type)
  Dir.mkdir dir unless Dir.exist? dir
  dir_scaner = Dir.new dir

  data = []
  dir_scaner.each do |file_name|
    file = File.new dir.join(file_name), 'r'
    next unless File.file?(file) and File.extname(file) == ".cache"
    data_str = file.read.split(" --> ")[1]

    unless data_str
      puts "cache #{type} ##{file_name} data miss"
      next
    end

    d = JSON.parse data_str
    data << type_to_class(type).from_cache(d)
  end

  data
end
write(type, key, data) click to toggle source
Calls superclass method CacheUtil::write
# File lib/cache_driver/file_cache_util.rb, line 4
def write(type, key, data)
  super type, key, data

  dir = file_dir.join type_to_dir(type)
  Dir.mkdir dir unless Dir.exist? dir

  file = File.new dir.join("#{key}.cache"), 'w'
  file.puts "#{Time.now} --> #{data.to_cache.to_json}"
  file.close

  key
end

Private Class Methods

file_dir() click to toggle source
# File lib/cache_driver/file_cache_util.rb, line 75
def file_dir
  CacheDriver.config.file_dir
end