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
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/fulcrum/media_resource.rb', line 14
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
27
28
29
|
# File 'lib/fulcrum/media_resource.rb', line 27
def create(file, content_type = nil, attrs = {})
call(:post, create_action, attributes_for_upload(file, content_type, attrs))
end
|
#default_content_type ⇒ Object
9
10
11
12
|
# File 'lib/fulcrum/media_resource.rb', line 9
def default_content_type
raise NotImplementedError,
'default_content_type must be implemented in derived classes'
end
|
#download(url, &blk) ⇒ Object
31
32
33
|
# File 'lib/fulcrum/media_resource.rb', line 31
def download(url, &blk)
open(url, "rb", &blk)
end
|
#download_version(access_key, version, &blk) ⇒ Object
35
36
37
|
# File 'lib/fulcrum/media_resource.rb', line 35
def download_version(access_key, version, &blk)
download(find(access_key)[version], &blk)
end
|
#new_access_key ⇒ Object
43
44
45
|
# File 'lib/fulcrum/media_resource.rb', line 43
def new_access_key
SecureRandom.uuid
end
|
#original(access_key, &blk) ⇒ Object
39
40
41
|
# File 'lib/fulcrum/media_resource.rb', line 39
def original(access_key, &blk)
download_version(access_key, 'original', &blk)
end
|