module Shrine::Plugins::Tus::AttacherMethods
Private Instance Methods
cached(data, **options)
click to toggle source
Calls superclass method
# File lib/shrine/plugins/tus.rb, line 10 def cached(data, **options) data = data.dup data = JSON.parse(data) if data.is_a?(String) if URI.regexp =~ (data["id"] || data[:id]) id = data.delete("id") || data.delete(:id) data["id"] = tus_url_to_storage_id(id, cache.storage) end super(data, **options) end
tus_url_to_storage_id(tus_url, storage)
click to toggle source
# File lib/shrine/plugins/tus.rb, line 22 def tus_url_to_storage_id(tus_url, storage) tus_uid = tus_url.split("/").last if defined?(Storage::FileSystem) && storage.is_a?(Storage::FileSystem) tus_uid elsif defined?(Storage::Gridfs) && storage.is_a?(Storage::Gridfs) grid_info = storage.bucket.find(filename: tus_uid).limit(1).first grid_info[:_id].to_s elsif defined?(Storage::S3) && storage.is_a?(Storage::S3) tus_uid else raise Error, "undefined conversion of tus URL to storage id for storage #{storage.inspect}" end end