Class: Paperclip::Storage::Dropbox::Credentials

Inherits:
Object
  • Object
show all
Defined in:
lib/paperclip/storage/dropbox/credentials.rb

Instance Method Summary collapse

Constructor Details

#initialize(credentials) ⇒ Credentials

Returns a new instance of Credentials.



10
11
12
# File 'lib/paperclip/storage/dropbox/credentials.rb', line 10

def initialize(credentials)
  @credentials = credentials
end

Instance Method Details

#fetch(namespace = nil) ⇒ Object



14
15
16
17
18
# File 'lib/paperclip/storage/dropbox/credentials.rb', line 14

def fetch(namespace = nil)
  parse!(namespace)
  validate!
  @credentials
end

#parse!(namespace = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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!Object



40
41
42
43
# File 'lib/paperclip/storage/dropbox/credentials.rb', line 40

def validate!
  validate_presence!
  validate_inclusion!
end