lib/gitquickbooks/cache.rb
module GitQuickBooks
##
# Setup Marshalling cache
class Cache
# attr_accesor :base_path
def load(name)
Marshal.load(IO.read("tmp/#{name}"))
end
def present?(name)
File.file?("tmp/#{name}")
end
def write(name, data)
File.open("tmp/#{name}", 'w+') do |f|
f.write(Marshal.dump(data))
end
end
def delete(name)
File.delete("tmp/#{name}")
end
def fetch(name, &block)
if !present?(name)
@data = block.call
write(name, @data)
@data
else
puts "#{name} extracted from cache".red
@data = GitQuickBooks::Cache.new.load(name)
end
end
end
end