class Fulcrum::MediaResource
Public Instance Methods
attributes_for_upload(file, content_type = nil, attributes = {})
click to toggle source
# 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 = {})
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# File lib/fulcrum/media_resource.rb, line 33 def download(url, &blk) open(url, "rb", &blk) end
download_version(access_key, version, &blk)
click to toggle source
# 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()
click to toggle source
# File lib/fulcrum/media_resource.rb, line 51 def new_access_key SecureRandom.uuid end
original(access_key, &blk)
click to toggle source
# File lib/fulcrum/media_resource.rb, line 47 def original(access_key, &blk) download_version(access_key, 'original', &blk) end