Module: BetterStorage::VariantMetadata

Defined in:
lib/better_storage/variant_metadata.rb

Constant Summary collapse

KEY =
"bs_variants"

Class Method Summary collapse

Class Method Details

.delete(blob, digest) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/better_storage/variant_metadata.rb', line 20

def delete(blob, digest)
  blob.with_lock do
    return unless blob..dig(KEY, digest)
     = blob..deep_dup
    [KEY].delete(digest)
    .delete(KEY) if [KEY].empty?
    blob.update_columns(metadata: )
    blob. = 
  end
end

.fetch(blob, digest) ⇒ Object



7
8
9
# File 'lib/better_storage/variant_metadata.rb', line 7

def fetch(blob, digest)
  blob..dig(KEY, digest)
end

.store(blob, digest, variant_blob_key) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/better_storage/variant_metadata.rb', line 11

def store(blob, digest, variant_blob_key)
  blob.with_lock do
    return if blob..dig(KEY, digest) == variant_blob_key
     = blob..deep_merge(KEY => { digest => variant_blob_key })
    blob.update_columns(metadata: )
    blob. = 
  end
end