Class: Cleversafe::Object

Inherits:
Object
  • Object
show all
Defined in:
lib/cleversafe/object.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(vault, name) ⇒ Object

Returns a new instance of Object.

Raises:

  • (ArgumentError)


8
9
10
11
12
13
# File 'lib/cleversafe/object.rb', line 8

def initialize(vault, name)
  raise ArgumentError, "name is required" unless name =~ /\S/
  @connection = vault.connection
  @vault = vault.name
  @name = name
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



6
7
8
# File 'lib/cleversafe/object.rb', line 6

def connection
  @connection
end

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/cleversafe/object.rb', line 6

def name
  @name
end

#vaultObject (readonly)

Returns the value of attribute vault.



6
7
8
# File 'lib/cleversafe/object.rb', line 6

def vault
  @vault
end

Instance Method Details

#data(options = {}) ⇒ Object



36
37
38
# File 'lib/cleversafe/object.rb', line 36

def data(options={})
  open(options) { |io| io.read }
end

#deleteObject



23
24
25
26
27
# File 'lib/cleversafe/object.rb', line 23

def delete
  handle_errors do
    connection.delete(key)
  end
end

#etagObject



60
61
62
# File 'lib/cleversafe/object.rb', line 60

def etag
  [:etag]
end

#exists?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
# File 'lib/cleversafe/object.rb', line 29

def exists?
  
  true
rescue Errors::NotFound
  false
end

#keyObject



15
16
17
# File 'lib/cleversafe/object.rb', line 15

def key
  "#{vault}/#{name}"
end

#metadataObject



54
55
56
57
58
# File 'lib/cleversafe/object.rb', line 54

def 
  @metadata ||= handle_errors do
    connection.head(key).headers
  end
end

#open(options = {}) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cleversafe/object.rb', line 40

def open(options={})
  handle_errors do
    response = connection.get(key, options)
    begin
      file = response.file
      file.open
      file.binmode
      yield file
    ensure
      file.unlink
    end
  end
end

#sizeObject



64
65
66
# File 'lib/cleversafe/object.rb', line 64

def size
  [:content_length].to_i
end

#urlObject



19
20
21
# File 'lib/cleversafe/object.rb', line 19

def url
  connection.url_for(vault, name)
end