module Datadog::Core::Vendor::Multipart::Post::Parts::Part

def self.file?(value)

def self.file?(value)
  value.respond_to?(:content_type) && value.respond_to?(:original_filename)
end

def self.new(boundary, name, value, headers = {})

def self.new(boundary, name, value, headers = {})
  headers ||= {} # avoid nil values
  if file?(value)
    FilePart.new(boundary, name, value, headers)
  else
    ParamPart.new(boundary, name, value, headers)
  end
end

def length

def length
  @part.length
end

def to_io

def to_io
  @io
end