class FacebookAds::FieldTypes::UploadFile
Constants
- MIME_TYPES
Private Class Methods
acceptable?(value)
click to toggle source
# File lib/facebook_ads/field_types/upload_file.rb, line 112 def self.acceptable?(value) [File, Tempfile, UploadIO].each do |type| return true if value.is_a?(type) end value.is_a?(String) ? File.exists?(value) : false end
Public Instance Methods
serialize(value)
click to toggle source
# File lib/facebook_ads/field_types/upload_file.rb, line 76 def serialize(value) case value when String, File, Tempfile if value.is_a?(String) raise InvalidParameterError, "No such file: #{value}" unless File.exists?(value) value = File.new(value) end ext = File.extname(value.path).gsub(/^./,'') category, content_type = content_type_for(ext) raise 'This type of file is not supported' unless content_type if category == :video FacebookAds::VideoIO.new(value, content_type) else ::UploadIO.new(value, content_type) end when UploadIO value # when etc etc TODO Rails/Sinatra Upload else raise 'Unknown data type this field' end end
Private Instance Methods
content_type_for(ext)
click to toggle source
# File lib/facebook_ads/field_types/upload_file.rb, line 103 def content_type_for(ext) MIME_TYPES.each do |category, types| if type = types[ext] return [category, type] end end nil end