Sha256: 84f3d501d342bec4bf4a6496ebacf324ea9e8072cc476ad8f1fce27e9f3aaa62

Contents?: true

Size: 1.88 KB

Versions: 3

Compression:

Stored size: 1.88 KB

Contents

require 'cgi'
require 'faraday'

module Smartsheet
  module API
    # Specification for a file attachment by path, target filename, and MIME content type
    class PathFileSpec
      attr_reader :upload_io, :filename, :content_type, :file_length

      def initialize(path, filename, content_type)
        @file_length = File.size(path)
        @filename = (filename.nil? || filename.empty?) ? File.basename(path) : filename
        @upload_io = Faraday::UploadIO.new(path, content_type, CGI::escape(@filename))
        @content_type = content_type
      end
    end

    # Specification for a file attachment by {::File}, target filename, file length, and MIME
    # content type
    class ObjectFileSpec
      attr_reader :upload_io, :filename, :content_type, :file_length

      def initialize(file, filename, file_length, content_type)
        @file_length = file_length
        @filename = filename
        @upload_io = Faraday::UploadIO.new(file, content_type, CGI::escape(filename))
        @content_type = content_type
      end
    end

    # Specification for file sheet import by path and MIME content type
    class ImportPathFileSpec
      attr_reader :upload_io, :filename, :content_type, :file_length

      def initialize(path, content_type)
        @file_length = File.size(path)
        @filename = nil
        @upload_io = Faraday::UploadIO.new(path, content_type)
        @content_type = content_type
      end
    end

    # Specification for file sheet import by {::File}, file length, and MIME content type
    class ImportObjectFileSpec
      attr_reader :upload_io, :filename, :content_type, :file_length

      def initialize(file, file_length, content_type)
        @file_length = file_length
        @filename = nil
        @upload_io = Faraday::UploadIO.new(file, content_type)
        @content_type = content_type
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
smartsheet-2.77.0 lib/smartsheet/api/file_spec.rb
smartsheet-1.3.0 lib/smartsheet/api/file_spec.rb
smartsheet-1.2.0 lib/smartsheet/api/file_spec.rb