class Paperclip::StringioAdapter

Attributes

content_type[W]

Public Class Methods

new(target, options = {}) click to toggle source
Calls superclass method Paperclip::AbstractAdapter::new
# File lib/paperclip/io_adapters/stringio_adapter.rb, line 9
def initialize(target, options = {})
  super
  cache_current_values
end
register() click to toggle source
# File lib/paperclip/io_adapters/stringio_adapter.rb, line 3
def self.register
  Paperclip.io_adapters.register self do |target|
    StringIO === target
  end
end

Private Instance Methods

cache_current_values() click to toggle source
# File lib/paperclip/io_adapters/stringio_adapter.rb, line 18
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
copy_to_tempfile(source) click to toggle source
# File lib/paperclip/io_adapters/stringio_adapter.rb, line 26
def copy_to_tempfile(source)
  while data = source.read(16*1024)
    destination.write(data)
  end
  destination.rewind
  destination
end