Module: WikiCacheStore
- Included in:
- Wiki
- Defined in:
- lib/soks-storage.rb
Constant Summary collapse
- CACHE_EXTENSION =
".marshal"
Instance Method Summary collapse
- #cache_filename_for(name) ⇒ Object
- #load_cache(cache_name) ⇒ Object
- #save_cache(cache_name, cache_object) ⇒ Object
Instance Method Details
#cache_filename_for(name) ⇒ Object
40 41 42 |
# File 'lib/soks-storage.rb', line 40 def cache_filename_for( name ) File.join( @cache_folder, "#{name}#{CACHE_EXTENSION}") end |
#load_cache(cache_name) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/soks-storage.rb', line 5 def load_cache( cache_name ) return nil unless @cache_folder cache = nil File.open( cache_filename_for( cache_name ) ) do |f| cache = Marshal.load(f) end File.delete( cache_filename_for( cache_name ) ) $LOG.info "Loaded #{cache_name} cache" return cache rescue ArgumentError $LOG.warn "#{cache_name} cache corrupt (bad characters in file)" return nil rescue EOFError $LOG.warn "#{cache_name} cache corrupt (unexpected end of file)" return nil rescue Errno::ENOENT $LOG.warn "#{cache_name} cache not found" return nil end |
#save_cache(cache_name, cache_object) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/soks-storage.rb', line 33 def save_cache( cache_name, cache_object ) return nil unless @cache_folder File.open( cache_filename_for( cache_name ), 'w' ) do |f| f.puts Marshal.dump(cache_object) end end |