aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-06 12:22:44 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-06 12:22:44 +0200
commit35d5bddabcd8f0eccc7de3ddf60431ea196508a1 (patch)
treeae57c818c471e2d1c0fe322f5d8448df039bfb63 /lib
parentb3a9f3556dedb80cfa6336e6241d933baeb4f906 (diff)
downloadrails-35d5bddabcd8f0eccc7de3ddf60431ea196508a1.tar.gz
rails-35d5bddabcd8f0eccc7de3ddf60431ea196508a1.tar.bz2
rails-35d5bddabcd8f0eccc7de3ddf60431ea196508a1.zip
Rename from Site to Service now that we're called Active Storage
Diffstat (limited to 'lib')
-rw-r--r--lib/active_storage.rb2
-rw-r--r--lib/active_storage/blob.rb16
-rw-r--r--lib/active_storage/config/sites.yml12
-rw-r--r--lib/active_storage/service.rb (renamed from lib/active_storage/site.rb)12
-rw-r--r--lib/active_storage/service/disk_service.rb (renamed from lib/active_storage/site/disk_site.rb)2
-rw-r--r--lib/active_storage/service/gcs_service.rb (renamed from lib/active_storage/site/gcs_site.rb)2
-rw-r--r--lib/active_storage/service/mirror_service.rb51
-rw-r--r--lib/active_storage/service/s3_service.rb (renamed from lib/active_storage/site/s3_site.rb)2
-rw-r--r--lib/active_storage/site/mirror_site.rb51
9 files changed, 75 insertions, 75 deletions
diff --git a/lib/active_storage.rb b/lib/active_storage.rb
index e87eb8a506..f72fe0d017 100644
--- a/lib/active_storage.rb
+++ b/lib/active_storage.rb
@@ -5,5 +5,5 @@ module ActiveStorage
extend ActiveSupport::Autoload
autoload :Blob
- autoload :Site
+ autoload :Service
end
diff --git a/lib/active_storage/blob.rb b/lib/active_storage/blob.rb
index edf57b5c78..4ce344e2a1 100644
--- a/lib/active_storage/blob.rb
+++ b/lib/active_storage/blob.rb
@@ -1,4 +1,4 @@
-require "active_storage/site"
+require "active_storage/service"
require "active_storage/filename"
require "active_storage/purge_job"
@@ -9,7 +9,7 @@ class ActiveStorage::Blob < ActiveRecord::Base
has_secure_token :key
store :metadata, coder: JSON
- class_attribute :site
+ class_attribute :service
class << self
def build_after_upload(io:, filename:, content_type: nil, metadata: nil)
@@ -37,24 +37,24 @@ class ActiveStorage::Blob < ActiveRecord::Base
end
def url(expires_in: 5.minutes, disposition: :inline)
- site.url key, expires_in: expires_in, disposition: disposition, filename: filename
+ service.url key, expires_in: expires_in, disposition: disposition, filename: filename
end
def upload(io)
- site.upload(key, io)
+ service.upload(key, io)
- self.checksum = site.checksum(key)
- self.byte_size = site.byte_size(key)
+ self.checksum = service.checksum(key)
+ self.byte_size = service.byte_size(key)
end
def download
- site.download key
+ service.download key
end
def delete
- site.delete key
+ service.delete key
end
def purge
diff --git a/lib/active_storage/config/sites.yml b/lib/active_storage/config/sites.yml
index 43bc77fbf9..317ef2b9b7 100644
--- a/lib/active_storage/config/sites.yml
+++ b/lib/active_storage/config/sites.yml
@@ -1,25 +1,25 @@
# Configuration should be something like this:
#
# config/environments/development.rb
-# config.active_storage.site = :local
+# config.active_storage.service = :local
#
# config/environments/production.rb
-# config.active_storage.site = :amazon
+# config.active_storage.service = :amazon
local:
- site: Disk
+ service: Disk
root: <%%= File.join(Dir.tmpdir, "active_storage") %>
amazon:
- site: S3
+ service: S3
access_key_id: <%%= Rails.application.secrets.aws[:access_key_id] %>
secret_access_key: <%%= Rails.application.secrets.aws[:secret_access_key] %>
region: us-east-1
bucket: <%= Rails.application.class.name.remove(/::Application$/).underscore %>
google:
- site: GCS
+ service: GCS
mirror:
- site: Mirror
+ service: Mirror
primary: amazon
secondaries: google
diff --git a/lib/active_storage/site.rb b/lib/active_storage/service.rb
index b3b0221c63..038b6ccb53 100644
--- a/lib/active_storage/site.rb
+++ b/lib/active_storage/service.rb
@@ -1,11 +1,11 @@
-# Abstract class serving as an interface for concrete sites.
-class ActiveStorage::Site
- def self.configure(site, **options)
+# Abstract class serving as an interface for concrete services.
+class ActiveStorage::Service
+ def self.configure(service, **options)
begin
- require "active_storage/site/#{site.to_s.downcase}_site"
- ActiveStorage::Site.const_get(:"#{site}Site").new(**options)
+ require "active_storage/service/#{service.to_s.downcase}_service"
+ ActiveStorage::Service.const_get(:"#{service}Service").new(**options)
rescue LoadError => e
- puts "Couldn't configure site: #{site} (#{e.message})"
+ puts "Couldn't configure service: #{service} (#{e.message})"
end
end
diff --git a/lib/active_storage/site/disk_site.rb b/lib/active_storage/service/disk_service.rb
index 2ff0b22fae..6977b5b82e 100644
--- a/lib/active_storage/site/disk_site.rb
+++ b/lib/active_storage/service/disk_service.rb
@@ -1,7 +1,7 @@
require "fileutils"
require "pathname"
-class ActiveStorage::Site::DiskSite < ActiveStorage::Site
+class ActiveStorage::Service::DiskService < ActiveStorage::Service
attr_reader :root
def initialize(root:)
diff --git a/lib/active_storage/site/gcs_site.rb b/lib/active_storage/service/gcs_service.rb
index bf681ca6a2..18ec1de133 100644
--- a/lib/active_storage/site/gcs_site.rb
+++ b/lib/active_storage/service/gcs_service.rb
@@ -1,7 +1,7 @@
require "google/cloud/storage"
require "active_support/core_ext/object/to_query"
-class ActiveStorage::Site::GCSSite < ActiveStorage::Site
+class ActiveStorage::Service::GCSService < ActiveStorage::Service
attr_reader :client, :bucket
def initialize(project:, keyfile:, bucket:)
diff --git a/lib/active_storage/service/mirror_service.rb b/lib/active_storage/service/mirror_service.rb
new file mode 100644
index 0000000000..2a3518e59e
--- /dev/null
+++ b/lib/active_storage/service/mirror_service.rb
@@ -0,0 +1,51 @@
+class ActiveStorage::Service::MirrorService < ActiveStorage::Service
+ attr_reader :services
+
+ def initialize(services:)
+ @services = services
+ end
+
+ def upload(key, io)
+ services.collect do |service|
+ service.upload key, io
+ io.rewind
+ end
+ end
+
+ def download(key)
+ services.detect { |service| service.exist?(key) }.download(key)
+ end
+
+ def delete(key)
+ perform_across_services :delete, key
+ end
+
+ def exist?(key)
+ perform_across_services(:exist?, key).any?
+ end
+
+
+ def url(key, **options)
+ primary_service.url(key, **options)
+ end
+
+ def byte_size(key)
+ primary_service.byte_size(key)
+ end
+
+ def checksum(key)
+ primary_service.checksum(key)
+ end
+
+ private
+ def primary_service
+ services.first
+ end
+
+ def perform_across_services(method, *args)
+ # FIXME: Convert to be threaded
+ services.collect do |service|
+ service.public_send method, *args
+ end
+ end
+end
diff --git a/lib/active_storage/site/s3_site.rb b/lib/active_storage/service/s3_service.rb
index 65dad37cfe..811321a172 100644
--- a/lib/active_storage/site/s3_site.rb
+++ b/lib/active_storage/service/s3_service.rb
@@ -1,6 +1,6 @@
require "aws-sdk"
-class ActiveStorage::Site::S3Site < ActiveStorage::Site
+class ActiveStorage::Service::S3Service < ActiveStorage::Service
attr_reader :client, :bucket
def initialize(access_key_id:, secret_access_key:, region:, bucket:)
diff --git a/lib/active_storage/site/mirror_site.rb b/lib/active_storage/site/mirror_site.rb
deleted file mode 100644
index ba3ef0ef0e..0000000000
--- a/lib/active_storage/site/mirror_site.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-class ActiveStorage::Site::MirrorSite < ActiveStorage::Site
- attr_reader :sites
-
- def initialize(sites:)
- @sites = sites
- end
-
- def upload(key, io)
- sites.collect do |site|
- site.upload key, io
- io.rewind
- end
- end
-
- def download(key)
- sites.detect { |site| site.exist?(key) }.download(key)
- end
-
- def delete(key)
- perform_across_sites :delete, key
- end
-
- def exist?(key)
- perform_across_sites(:exist?, key).any?
- end
-
-
- def url(key, **options)
- primary_site.url(key, **options)
- end
-
- def byte_size(key)
- primary_site.byte_size(key)
- end
-
- def checksum(key)
- primary_site.checksum(key)
- end
-
- private
- def primary_site
- sites.first
- end
-
- def perform_across_sites(method, *args)
- # FIXME: Convert to be threaded
- sites.collect do |site|
- site.public_send method, *args
- end
- end
-end