class PlateApi::PostMultipartRequest
Constants
- HttpAdapter
Public Class Methods
new(public_key, secret, path, parameters = {}, custom_server = nil)
click to toggle source
Calls superclass method
# File lib/plate_api/post_multipart_request.rb, line 5 def initialize(public_key, secret, path, parameters = {}, custom_server = nil) super(public_key, secret, "POST", path, custom_server) @post_parameters = map_parameters(parameters) end
Public Instance Methods
extra_builder_options(builder)
click to toggle source
# File lib/plate_api/post_multipart_request.rb, line 11 def extra_builder_options(builder) builder.request :multipart builder.request :url_encoded end
extra_request_options(request)
click to toggle source
# File lib/plate_api/post_multipart_request.rb, line 16 def extra_request_options(request) request.body = @post_parameters end
map_parameters(parameters)
click to toggle source
# File lib/plate_api/post_multipart_request.rb, line 33 def map_parameters(parameters) parameters.keys.each do |key| val = parameters[key] if val.is_a? File full_path = File.expand_path(val) mime_type = mime_type(full_path) parameters[key] = Faraday::UploadIO.new(full_path, mime_type) end end return parameters end
mime_type(full_path)
click to toggle source
# File lib/plate_api/post_multipart_request.rb, line 20 def mime_type(full_path) begin IO.popen(["file", "--brief", "--mime-type", full_path], in: :close, err: :close) { |io| io.read.chomp } rescue SystemCallError # determine mime_type based on extension as a fallback, in case `file` is not installed on the client machine mime_type_fallback(full_path) end end
mime_type_fallback(full_path)
click to toggle source
# File lib/plate_api/post_multipart_request.rb, line 29 def mime_type_fallback(full_path) MIME::Types.type_for(full_path).first.content_type end