diff options
Diffstat (limited to 'lib/active_vault/site.rb')
-rw-r--r-- | lib/active_vault/site.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/active_vault/site.rb b/lib/active_vault/site.rb new file mode 100644 index 0000000000..29eddf1566 --- /dev/null +++ b/lib/active_vault/site.rb @@ -0,0 +1,41 @@ +# Abstract class serving as an interface for concrete sites. +class ActiveVault::Site + def self.configure(site, **options) + begin + require "active_vault/site/#{site.to_s.downcase}_site" + ActiveVault::Site.const_get(:"#{site}Site").new(**options) + rescue LoadError => e + puts "Couldn't configure site: #{site} (#{e.message})" + end + end + + + def upload(key, io) + raise NotImplementedError + end + + def download(key) + raise NotImplementedError + end + + def delete(key) + raise NotImplementedError + end + + def exist?(key) + raise NotImplementedError + end + + + def url(key, expires_in:, disposition:, filename:) + raise NotImplementedError + end + + def bytesize(key) + raise NotImplementedError + end + + def checksum(key) + raise NotImplementedError + end +end |