Sha256: 5c0968a92a5700a0028e60cd91fa207b7d21c3f92a4d0a74f2e9b864847f7726
Contents?: true
Size: 1.79 KB
Versions: 2
Compression:
Stored size: 1.79 KB
Contents
# encoding: utf-8 require 'digest/sha1' require 'mime/types' module Ckeditor module Http # Create tempfile from hash class UploadedFile attr_accessor :original_filename, :content_type, :tempfile, :headers def initialize(hash) @original_filename = hash[:filename] @content_type = hash[:type] @headers = hash[:head] @tempfile = hash[:tempfile] raise(ArgumentError, ':tempfile is required') unless @tempfile end def open @tempfile.open end def path @tempfile.path end def read(*args) @tempfile.read(*args) end def rewind @tempfile.rewind end def size @tempfile.size end end # Usage (paperclip example) # @asset.data = QqFile.new(params[:qqfile], request) class QqFile < ::Tempfile def initialize(filename, request, tmpdir = Dir::tmpdir) @original_filename = filename @request = request super Digest::SHA1.hexdigest(filename), tmpdir fetch end def fetch self.write @request.raw_post self.rewind self end def original_filename @original_filename end def content_type types = MIME::Types.type_for(@request.content_type) types.empty? ? @request.content_type : types.first.to_s end end # Convert nested Hash to HashWithIndifferentAccess and replace # file upload hash with UploadedFile objects def self.normalize_param(*args) value = args.first if Hash === value && value.has_key?(:tempfile) UploadedFile.new(value) elsif value.is_a?(String) QqFile.new(*args) else value end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ckeditor-3.6.0 | lib/ckeditor/http.rb |
ckeditor-3.6.0.pre | lib/ckeditor/http.rb |