In Files

Parent

Class/Module Index [+]

Quicksearch

XmlSimple::Cache

A simple cache for XML documents that were already transformed by xml_in.

Public Class Methods

new() click to toggle source

Creates and initializes a new Cache object.

# File lib/xmlsimple.rb, line 20
def initialize
  @mem_share_cache = {}
  @mem_copy_cache  = {}
end

Public Instance Methods

restore_mem_copy(filename) click to toggle source

Restores a data structure from a memory cache. If restoring the data structure failed for any reason, nil will be returned.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 87
def restore_mem_copy(filename)
  data = get_from_memory_cache(filename, @mem_share_cache)
  data = Marshal.load(data) unless data.nil?
  data
end
restore_mem_share(filename) click to toggle source

Restores a data structure from a shared memory cache. You should consider these elements as "read only". If restoring the data structure failed for any reason, nil will be returned.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 67
def restore_mem_share(filename)
  get_from_memory_cache(filename, @mem_share_cache)
end
restore_storable(filename) click to toggle source

Restores a data structure from a file. If restoring the data structure failed for any reason, nil will be returned.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 41
def restore_storable(filename)
  cache_file = get_cache_filename(filename)
  return nil unless File::exist?(cache_file)
  return nil unless File::mtime(cache_file).to_i > File::mtime(filename).to_i
  data = nil
  File.open(cache_file) { |f| data = Marshal.load(f) }
  data
end
save_mem_copy(data, filename) click to toggle source

Copies a data structure to a memory cache.

data

Data structure to be copied.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 77
def save_mem_copy(data, filename)
  @mem_share_cache[filename] = [Time::now.to_i, Marshal.dump(data)]
end
save_mem_share(data, filename) click to toggle source

Saves a data structure in a shared memory cache.

data

Data structure to be saved.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 56
def save_mem_share(data, filename)
  @mem_share_cache[filename] = [Time::now.to_i, data]
end
save_storable(data, filename) click to toggle source

Saves a data structure into a file.

data

Data structure to be saved.

filename

Name of the file belonging to the data structure.

# File lib/xmlsimple.rb, line 31
def save_storable(data, filename)
  cache_file = get_cache_filename(filename)
  File.open(cache_file, "w+") { |f| Marshal.dump(data, f) }
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.