Class: CarrierWave::Storage::TrueVault::File

Inherits:
Object
  • Object
show all
Includes:
Utilities::Uri
Defined in:
lib/carrierwave/storage/truevault.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(uploader, base, path) ⇒ File

Returns a new instance of File.



47
48
49
# File 'lib/carrierwave/storage/truevault.rb', line 47

def initialize(uploader, base, path)
  @uploader, @base, @path = uploader, base, path
end

Instance Attribute Details

#pathObject (readonly)

Returns the value of attribute path.



20
21
22
# File 'lib/carrierwave/storage/truevault.rb', line 20

def path
  @path
end

Instance Method Details

#content_typeObject

Lookup value for file content-type header

Returns

String

value of content-type



32
33
34
# File 'lib/carrierwave/storage/truevault.rb', line 32

def content_type
  @content_type || file.content_type
end

#content_type=(new_content_type) ⇒ Object

Set non-default content-type header (default is file.content_type)

Returns

String

returns new content type value



43
44
45
# File 'lib/carrierwave/storage/truevault.rb', line 43

def content_type=(new_content_type)
  @content_type = new_content_type
end

#filenameObject



22
23
24
# File 'lib/carrierwave/storage/truevault.rb', line 22

def filename
  Pathname.new(path).basename.to_s
end

#readObject

Read content of file from service

Returns

String

contents of file



57
58
59
# File 'lib/carrierwave/storage/truevault.rb', line 57

def read
  file
end

#retrieve(identifier) ⇒ Object

Retrieve file from service

Returns

File


97
98
99
100
# File 'lib/carrierwave/storage/truevault.rb', line 97

def retrieve(identifier)
  @file = client.get_blob(@uploader.truevault_vault_id, model.blob_id)
  @file ||= @file.parsed_response
end

#sizeObject

Return size of file body

Returns

Integer

size of file body



68
69
70
# File 'lib/carrierwave/storage/truevault.rb', line 68

def size
  file.content_length
end

#store(file) ⇒ Object

Write file to service

Returns

Boolean

true on success or raises error



83
84
85
86
87
88
# File 'lib/carrierwave/storage/truevault.rb', line 83

def store(file)
  truevault_file = file.to_file
  @content_type ||= file.content_type
  @file = client.create_blob(@uploader.truevault_vault_id, truevault_file)
  @uploader.truevault_attributes.merge!(@file.parsed_response)
end

#truevault_attributesObject



72
73
74
# File 'lib/carrierwave/storage/truevault.rb', line 72

def truevault_attributes
  attributes
end