Sha256: 1b180ac94894654992d3ba3d9aeaad5a2208ac9785ef82a8449cd2a17c858a51

Contents?: true

Size: 958 Bytes

Versions: 5

Compression:

Stored size: 958 Bytes

Contents

module EtCcdClient
  class UploadedFile
    # The filename, *not* including the path, of the "uploaded" file
    attr_reader :original_filename

    # The content type of the "uploaded" file
    attr_accessor :content_type

    def initialize(path, content_type: "text/plain", binary: false, original_filename: File.basename(path))
      raise "#{path} file does not exist" unless ::File.exist?(path)
      @content_type = content_type
      @original_filename = original_filename
      @tempfile = Tempfile.new(encoding: Encoding::BINARY)
      @tempfile.binmode if binary
      FileUtils.copy_file(path, @tempfile.path)
    end

    def path
      @tempfile.path
    end

    def to_s
      inspect
    end
    alias_method :local_path, :path

    def respond_to?(*args)
      super or @tempfile.respond_to?(*args)
    end

    def method_missing(method_name, *args, &block) #:nodoc:
      @tempfile.__send__(method_name, *args, &block)
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
et_ccd_client-0.4.0 lib/et_ccd_client/uploaded_file.rb
et_ccd_client-0.3.4 lib/et_ccd_client/uploaded_file.rb
et_ccd_client-0.3.3 lib/et_ccd_client/uploaded_file.rb
et_ccd_client-0.3.2 lib/et_ccd_client/uploaded_file.rb
et_ccd_client-0.3.1 lib/et_ccd_client/uploaded_file.rb