module Shrine::Plugins::ContentAddressable::InstanceMethods

Public Instance Methods

content_addressable_hash() click to toggle source
# File lib/shrine/plugins/content_addressable.rb, line 61
def content_addressable_hash
  (opts[:content_addressable_hash] || 'sha256').to_sym
end
content_addressable_hex(io) click to toggle source
# File lib/shrine/plugins/content_addressable.rb, line 72
def content_addressable_hex(io)
  digest = calculate_signature(io, content_addressable_hash, format: :none)
  Multihashes.encode(digest, content_addressable_multihash)
             .unpack('H*')
             .first
end
content_addressable_multihash() click to toggle source
# File lib/shrine/plugins/content_addressable.rb, line 65
def content_addressable_multihash
  String(
    opts[:content_addressable_multihash] ||
    MULTIHASH_LOOKUP.fetch(content_addressable_hash)
  )
end
generate_location(io, _) click to toggle source
# File lib/shrine/plugins/content_addressable.rb, line 79
def generate_location(io, _)
  [opts[:content_addressable_prefix], content_addressable_hex(io)]
    .compact
    .join('/')
end