Sha256: 40542160a390e9e989a4a24170bd337f97cd1e96f7edbb83a7be5e3a8b214531

Contents?: true

Size: 781 Bytes

Versions: 26

Compression:

Stored size: 781 Bytes

Contents

module Paperclip
  class StringioAdapter < AbstractAdapter
    def initialize(target)
      @target = target
      cache_current_values
    end

    attr_writer :content_type

    private

    def cache_current_values
      self.original_filename = @target.original_filename if @target.respond_to?(:original_filename)
      self.original_filename ||= "data"
      @tempfile = copy_to_tempfile(@target)
      @content_type = ContentTypeDetector.new(@tempfile.path).detect
      @size = @target.size
    end

    def copy_to_tempfile(source)
      while data = source.read(16*1024)
        destination.write(data)
      end
      destination.rewind
      destination
    end

  end
end

Paperclip.io_adapters.register Paperclip::StringioAdapter do |target|
  StringIO === target
end

Version data entries

26 entries across 24 versions & 6 rubygems

Version Path
kt-paperclip-4.4.0 lib/paperclip/io_adapters/stringio_adapter.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/paperclip-5.1.0/lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-5.1.0 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-5.0.0 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.7 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip_jk-5.0.0.beta2 lib/paperclip/io_adapters/stringio_adapter.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/paperclip-4.3.6/lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-5.0.0.beta2 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-5.0.0.beta1 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.6 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.5 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.4 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.3 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.2 lib/paperclip/io_adapters/stringio_adapter.rb
paperclip-4.3.1 lib/paperclip/io_adapters/stringio_adapter.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/stringio_adapter.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/stringio_adapter.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.2/lib/paperclip/io_adapters/stringio_adapter.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.3/lib/paperclip/io_adapters/stringio_adapter.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/paperclip-4.2.4/lib/paperclip/io_adapters/stringio_adapter.rb