Module: BetterStorage

Extended by:
ActiveSupport::Autoload
Defined in:
lib/better_storage.rb,
lib/better_storage/blob.rb,
lib/better_storage/railtie.rb,
lib/better_storage/variant.rb,
lib/better_storage/version.rb,
lib/better_storage/attachment.rb,
lib/better_storage/s3_service_proxy.rb

Defined Under Namespace

Modules: Attachment, Blob, S3ServiceProxy, Variant Classes: Railtie

Constant Summary collapse

VERSION =
"0.2.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (BetterStorage)

    the object that the method was called on



17
18
19
# File 'lib/better_storage.rb', line 17

def self.configure
  yield self
end

.generate_blob_key(*key) ⇒ Object



45
46
47
# File 'lib/better_storage.rb', line 45

def self.generate_blob_key(*key)
  [BetterStorage.prefix, key].compact.join("/")
end

.prefixObject



37
38
39
40
41
42
43
# File 'lib/better_storage.rb', line 37

def self.prefix
  parts = []
  parts << namespace if namespace
  parts << "dev" if Rails.env.development?
  parts << Date.today.strftime(prefix_date_format) if prefix_date_format
  parts.join("/")
end

.protected_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
# File 'lib/better_storage.rb', line 32

def self.protected_key?(key)
  dev_prefix = [namespace, "dev"].compact.join("/")
  !key.start_with?(dev_prefix)
end

.public_url(key) ⇒ Object



25
26
27
28
29
30
# File 'lib/better_storage.rb', line 25

def self.public_url(key)
  url = URI.parse(s3_endpoint)
  url.path += '/' unless url.path[-1] == '/'
  url.path += key
  url.to_s
end

Instance Method Details

#namespace=(value) ⇒ Object



21
22
23
# File 'lib/better_storage.rb', line 21

def namespace=(value)
  @namespace = value.gsub(/\/$/, "")
end