Class: Fulcrum::MediaResource
Constant Summary
Actions::List::DEFAULT_PER_PAGE
Instance Attribute Summary
Attributes inherited from Resource
#client
Instance Method Summary
collapse
#create_action
#find
#all, #default_list_params
Methods inherited from Resource
#attributes_for_object, #call, #collection, #initialize, #member, #member_action, #resource_name, #resources_name
Instance Method Details
#attributes_for_upload(file, content_type = nil, attributes = {}) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/fulcrum/media_resource.rb', line 16
def attributes_for_upload(file, content_type = nil, attributes = {})
attributes ||= {}
file = Faraday::UploadIO.new(file, content_type || default_content_type)
attributes[:file] = file
attributes[:access_key] ||= new_access_key
media_attributes = {}
media_attributes[resource_name] = attributes
media_attributes
end
|
#create(file, content_type = nil, attrs = {}) ⇒ Object
29
30
31
|
# File 'lib/fulcrum/media_resource.rb', line 29
def create(file, content_type = nil, attrs = {})
call(:post, create_action, attributes_for_upload(file, content_type, attrs))
end
|
#default_content_type ⇒ Object
11
12
13
14
|
# File 'lib/fulcrum/media_resource.rb', line 11
def default_content_type
raise NotImplementedError,
'default_content_type must be implemented in derived classes'
end
|
#download(url, &blk) ⇒ Object
33
34
35
|
# File 'lib/fulcrum/media_resource.rb', line 33
def download(url, &blk)
open(url, "rb", &blk)
end
|
#download_version(access_key, version, &blk) ⇒ Object
37
38
39
40
41
42
43
44
45
|
# File 'lib/fulcrum/media_resource.rb', line 37
def download_version(access_key, version, &blk)
media = find(access_key)
unless media[version]
raise Fulcrum::MediaNotAvailableError, "The #{resource_name} version you requested is not available."
end
download(media[version], &blk)
end
|
#new_access_key ⇒ Object
51
52
53
|
# File 'lib/fulcrum/media_resource.rb', line 51
def new_access_key
SecureRandom.uuid
end
|
#original(access_key, &blk) ⇒ Object
47
48
49
|
# File 'lib/fulcrum/media_resource.rb', line 47
def original(access_key, &blk)
download_version(access_key, 'original', &blk)
end
|