Much base work started
This commit is contained in:
46
app/services/storage_adapters/base_adapter.rb
Normal file
46
app/services/storage_adapters/base_adapter.rb
Normal file
@@ -0,0 +1,46 @@
|
||||
module StorageAdapters
|
||||
class BaseAdapter
|
||||
def initialize(storage_location)
|
||||
@storage_location = storage_location
|
||||
end
|
||||
|
||||
# Scan for video files and return array of relative paths
|
||||
def scan
|
||||
raise NotImplementedError, "#{self.class} must implement #scan"
|
||||
end
|
||||
|
||||
# Generate streaming URL for a video
|
||||
def stream_url(video)
|
||||
raise NotImplementedError, "#{self.class} must implement #stream_url"
|
||||
end
|
||||
|
||||
# Check if file exists at path
|
||||
def exists?(file_path)
|
||||
raise NotImplementedError, "#{self.class} must implement #exists?"
|
||||
end
|
||||
|
||||
# Check if storage can be read from
|
||||
def readable?
|
||||
raise NotImplementedError, "#{self.class} must implement #readable?"
|
||||
end
|
||||
|
||||
# Check if storage can be written to
|
||||
def writable?
|
||||
@storage_location.writable?
|
||||
end
|
||||
|
||||
# Write/copy file to storage
|
||||
def write(source_path, dest_path)
|
||||
raise NotImplementedError, "#{self.class} must implement #write"
|
||||
end
|
||||
|
||||
# Download file to local temp path (for processing)
|
||||
def download_to_temp(video)
|
||||
raise NotImplementedError, "#{self.class} must implement #download_to_temp"
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
attr_reader :storage_location
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user