Sha256: 9528f920d55146ac6c2ca71197598086feeb60bb01aefe89342ba1b1f9059790

Contents?: true

Size: 649 Bytes

Versions: 1

Compression:

Stored size: 649 Bytes

Contents

require "mime/types"
require_relative "text_part"

module VoiceBase
  module Request
    class FilePart < TextPart
      attr_accessor :filepath

      def initialize(name:, file:)
        @name = name
        @filepath = file.path
        @body = file.read
      end

      def multipart
        "Content-Disposition: form-data; name=\"#{CGI::escape(name)}\"; filename=\"#{ File.basename(filepath) }\"\r\n" +
          "Content-Type: #{ mime_type.simplified }\r\n\r\n#{ body }\r\n\r\n"
      end

      private

      def mime_type
        MIME::Types.type_for(filepath)[0] || MIME::Types["application/octet-stream"][0]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
voicebase-client-ruby-1.3.0 lib/voicebase/request/file_part.rb