Method: Drydock::ObjectCaches::FilesystemCache#fetch
- Defined in:
- lib/drydock/object_caches/filesystem_cache.rb
#fetch(key, &blk) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/drydock/object_caches/filesystem_cache.rb', line 23 def fetch(key, &blk) filename = build_path(key) if File.exist?(filename) File.read(filename) else dirname = File.dirname(filename) FileUtils.mkdir_p(dirname) blk.call.tap do |contents| File.open(filename, 'w') do |file| file.write contents end end end end |