Parent

CacheFileStore

Attributes

serializer[R]
storage_path[R]

Public Class Methods

new(storage_path, serializer = Marshal) click to toggle source

The serializer must have the 2 methods .load and .dump (Marshal and YAML have them) YAML is Human Readable, contrary to Marshal which store in a binary format Marshal does not need any “require”

# File lib/cache_file_store.rb, line 34
def initialize(storage_path, serializer = Marshal)
  @storage_path = File.expand_path(storage_path)
  @serializer = serializer

  # File.directory? for ruby <= 1.9 otherwise, it makes more sense to do Dir.exist? :/
  unless File.directory?(@storage_path)
    Dir.mkdir(@storage_path)
  end
end

Public Instance Methods

clean() click to toggle source
# File lib/cache_file_store.rb, line 44
def clean
  Dir[File.join(@storage_path, '*')].each do |f|
    File.delete(f)
  end
end
get_entry_file_path(key) click to toggle source
# File lib/cache_file_store.rb, line 66
def get_entry_file_path(key)
  @storage_path + '/' + key
end
read_entry(key) click to toggle source
# File lib/cache_file_store.rb, line 50
def read_entry(key)
  entry_file_path = get_entry_file_path(key)

  if File.exists?(entry_file_path)
    return @serializer.load(File.read(entry_file_path))
  end
end
write_entry(key, data_to_store, cache_timeout) click to toggle source
# File lib/cache_file_store.rb, line 58
def write_entry(key, data_to_store, cache_timeout)
  if cache_timeout > 0
    File.open(get_entry_file_path(key), 'w') do |f|
      f.write(@serializer.dump(data_to_store))
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.