Class: Shrine::Storage::Memory

Inherits:
Object
  • Object
show all
Defined in:
lib/shrine/storage/memory.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(store = {}) ⇒ Memory

Returns a new instance of Memory.



11
12
13
# File 'lib/shrine/storage/memory.rb', line 11

def initialize(store = {})
  @store = store
end

Instance Attribute Details

#storeObject (readonly)

Returns the value of attribute store.



9
10
11
# File 'lib/shrine/storage/memory.rb', line 9

def store
  @store
end

Instance Method Details

#clear!Object



42
43
44
# File 'lib/shrine/storage/memory.rb', line 42

def clear!
  store.clear
end

#delete(id) ⇒ Object



33
34
35
# File 'lib/shrine/storage/memory.rb', line 33

def delete(id)
  store.delete(id)
end

#delete_prefixed(delete_prefix) ⇒ Object



37
38
39
40
# File 'lib/shrine/storage/memory.rb', line 37

def delete_prefixed(delete_prefix)
  delete_prefix = delete_prefix.chomp("/") + "/"
  store.delete_if { |key, _value| key.start_with?(delete_prefix) }
end

#exists?(id) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/shrine/storage/memory.rb', line 25

def exists?(id)
  store.key?(id)
end

#open(id) ⇒ Object



19
20
21
22
23
# File 'lib/shrine/storage/memory.rb', line 19

def open(id, *)
  StringIO.new(store.fetch(id))
rescue KeyError
  raise Shrine::FileNotFound, "file #{id.inspect} not found on storage"
end

#upload(io, id) ⇒ Object



15
16
17
# File 'lib/shrine/storage/memory.rb', line 15

def upload(io, id, *)
  store[id] = io.read
end

#url(id) ⇒ Object



29
30
31
# File 'lib/shrine/storage/memory.rb', line 29

def url(id, *)
  "memory://#{id}"
end