X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Frequest%2Fmultipart.rb;fp=3rdparty%2Fmodules%2Faviator%2Ffeature%2Ffaraday%2Frequest%2Fmultipart.rb;h=0000000000000000000000000000000000000000;hb=6e1426dc77fb4e5d51f07c187c6f2219431dc31e;hp=38b452af727674d44a1caa0b905a10c6a4b31368;hpb=87423ba664cd5f2bb462ebadd08b1a90d0fe1c8d;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/aviator/feature/faraday/request/multipart.rb b/3rdparty/modules/aviator/feature/faraday/request/multipart.rb deleted file mode 100644 index 38b452af7..000000000 --- a/3rdparty/modules/aviator/feature/faraday/request/multipart.rb +++ /dev/null @@ -1,63 +0,0 @@ -require File.expand_path("../url_encoded", __FILE__) - -module Faraday - class Request::Multipart < Request::UrlEncoded - self.mime_type = 'multipart/form-data'.freeze - DEFAULT_BOUNDARY = "-----------RubyMultipartPost".freeze unless defined? DEFAULT_BOUNDARY - - def call(env) - match_content_type(env) do |params| - env.request.boundary ||= DEFAULT_BOUNDARY - env.request_headers[CONTENT_TYPE] += "; boundary=#{env.request.boundary}" - env.body = create_multipart(env, params) - end - @app.call env - end - - def process_request?(env) - type = request_type(env) - env.body.respond_to?(:each_key) and !env.body.empty? and ( - (type.empty? and has_multipart?(env.body)) or - type == self.class.mime_type - ) - end - - def has_multipart?(obj) - # string is an enum in 1.8, returning list of itself - if obj.respond_to?(:each) && !obj.is_a?(String) - (obj.respond_to?(:values) ? obj.values : obj).each do |val| - return true if (val.respond_to?(:content_type) || has_multipart?(val)) - end - end - false - end - - def create_multipart(env, params) - boundary = env.request.boundary - parts = process_params(params) do |key, value| - Faraday::Parts::Part.new(boundary, key, value) - end - parts << Faraday::Parts::EpiloguePart.new(boundary) - - body = Faraday::CompositeReadIO.new(parts) - env.request_headers[Faraday::Env::ContentLength] = body.length.to_s - return body - end - - def process_params(params, prefix = nil, pieces = nil, &block) - params.inject(pieces || []) do |all, (key, value)| - key = "#{prefix}[#{key}]" if prefix - - case value - when Array - values = value.inject([]) { |a,v| a << [nil, v] } - process_params(values, key, all, &block) - when Hash - process_params(value, key, all, &block) - else - all << block.call(key, value) - end - end - end - end -end