Sha256: 987f6b1afa9f595d4bc9d652397fc6a9bb8deece59364b775ca3fbaa1d296a36

Contents?: true

Size: 552 Bytes

Versions: 30

Compression:

Stored size: 552 Bytes

Contents

module Rack::App::InstanceMethods::Payload

  def payload_stream(&block)
    return nil unless @request.body.respond_to?(:gets)
    while chunk = request.body.gets
      block.call(chunk)
    end
    request.body.rewind
    nil
  end

  def payload
    @__payload__ ||= lambda {

      payload = ''
      payload_stream { |chunk| payload << chunk }
      return payload

    }.call
  end

  def payload_to_file(file_path, file_mod='w')
    File.open(file_path, file_mod) do |file|
      payload_stream { |chunk| file.print(chunk) }
    end
  end

end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
rack-app-5.6.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.5.1 lib/rack/app/instance_methods/payload.rb
rack-app-5.4.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.3.2 lib/rack/app/instance_methods/payload.rb
rack-app-5.3.1 lib/rack/app/instance_methods/payload.rb
rack-app-5.3.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.2.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.1.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.0.0 lib/rack/app/instance_methods/payload.rb
rack-app-5.0.0.rc2 lib/rack/app/instance_methods/payload.rb
rack-app-5.0.0.rc1 lib/rack/app/instance_methods/payload.rb
rack-app-4.0.1 lib/rack/app/instance_methods/payload.rb
rack-app-3.6.0 lib/rack/app/instance_methods/payload.rb
rack-app-3.5.2 lib/rack/app/instance_methods/payload.rb
rack-app-3.5.1 lib/rack/app/instance_methods/payload.rb
rack-app-3.5.0 lib/rack/app/instance_methods/payload.rb
rack-app-3.4.0 lib/rack/app/instance_methods/payload.rb
rack-app-3.3.0 lib/rack/app/instance_methods/payload.rb
rack-app-3.2.1 lib/rack/app/instance_methods/payload.rb
rack-app-3.2.0 lib/rack/app/instance_methods/payload.rb