class Paperclip::Storage::Dropbox::Credentials

Constants

REQUIRED_KEYS

Public Class Methods

new(credentials) click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 10
def initialize(credentials)
  @credentials = credentials
end

Public Instance Methods

fetch(namespace = nil) click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 14
def fetch(namespace = nil)
  parse!(namespace)
  validate!
  @credentials
end
parse!(namespace = nil) click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 20
def parse!(namespace = nil)
  @credentials =
    case @credentials
    when File
      YAML.load(ERB.new(File.read(@credentials.path)).result)
    when String, Pathname
      YAML.load(ERB.new(File.read(@credentials)).result)
    when Hash
      @credentials
    else
      raise ArgumentError, ":dropbox_credentials is not a path, file, nor a hash"
    end

  @credentials.stringify_keys!
  @credentials = @credentials[namespace.to_s] || @credentials
  @credentials.symbolize_keys!

  @credentials
end
validate!() click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 40
def validate!
  validate_presence!
  validate_inclusion!
end

Private Instance Methods

validate_inclusion!() click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 54
def validate_inclusion!
  if @credentials[:access_type] and not %w[dropbox app_folder].include?(@credentials[:access_type])
    raise KeyError, %(:access_type must be either "dropbox" or "app_folder" (was "#{@credentials[:access_type]}"))
  end
end
validate_presence!() click to toggle source
# File lib/paperclip/storage/dropbox/credentials.rb, line 47
def validate_presence!
  REQUIRED_KEYS.each do |key|
    value = @credentials.fetch(key)
    raise KeyError, ":#{key} credential is nil" if value.nil?
  end
end