class Shrine::Storage::Memory
Attributes
store[R]
Public Class Methods
new(store = {})
click to toggle source
# File lib/shrine/storage/memory.rb, line 11 def initialize(store = {}) @store = store end
Public Instance Methods
clear!()
click to toggle source
# File lib/shrine/storage/memory.rb, line 44 def clear! store.clear end
delete(id)
click to toggle source
# File lib/shrine/storage/memory.rb, line 35 def delete(id) store.delete(id) end
delete_prefixed(delete_prefix)
click to toggle source
# File lib/shrine/storage/memory.rb, line 39 def delete_prefixed(delete_prefix) delete_prefix = delete_prefix.chomp("/") + "/" store.delete_if { |key, _value| key.start_with?(delete_prefix) } end
exists?(id)
click to toggle source
# File lib/shrine/storage/memory.rb, line 27 def exists?(id) store.key?(id) end
open(id, **)
click to toggle source
# File lib/shrine/storage/memory.rb, line 19 def open(id, **) io = StringIO.new(store.fetch(id)) io.set_encoding(io.string.encoding) # Ruby 2.7.0 – https://bugs.ruby-lang.org/issues/16497 io rescue KeyError raise Shrine::FileNotFound, "file #{id.inspect} not found on storage" end
upload(io, id, **)
click to toggle source
# File lib/shrine/storage/memory.rb, line 15 def upload(io, id, **) store[id] = io.read end
url(id, *)
click to toggle source
# File lib/shrine/storage/memory.rb, line 31 def url(id, *) "memory://#{id}" end