Sha256: b607b10ea02c03bf41014378336dbfcc163c5165dabc4ccc1a86d04763862c69

Contents?: true

Size: 633 Bytes

Versions: 4

Compression:

Stored size: 633 Bytes

Contents

require 'rack/request'
require 'stringio'

module Sunrise
  module FileUpload
    class Request < ::Rack::Request
    
      def raw_post
        unless @env.include? 'RAW_POST_DATA'
          @env['RAW_POST_DATA'] = body.read(@env['CONTENT_LENGTH'].to_i)
          body.rewind if body.respond_to?(:rewind)
        end
        @env['RAW_POST_DATA']
      end
      
      def body
        if raw_post = @env['RAW_POST_DATA']
          raw_post.force_encoding(Encoding::BINARY) if raw_post.respond_to?(:force_encoding)
          StringIO.new(raw_post)
        else
          @env['rack.input']
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sunrise-file-upload-0.2.0 lib/sunrise/file_upload/request.rb
sunrise-file-upload-0.1.3 lib/sunrise/file_upload/request.rb
sunrise-file-upload-0.1.2 lib/sunrise/file_upload/request.rb
sunrise-file-upload-0.1.1 lib/sunrise/file_upload/request.rb