Class: Webmachine::Adapters::Rack::RequestBody Private

Inherits:
Object
  • Object
show all
Defined in:
lib/webmachine/adapters/rack.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Wraps the Rack input so it can be treated like a String or Enumerable.

Instance Method Summary (collapse)

Constructor Details

- (RequestBody) initialize(request)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of RequestBody

Parameters:

  • request (Rack::Request)

    the Rack request



122
123
124
# File 'lib/webmachine/adapters/rack.rb', line 122

def initialize(request)
  @request = request
end

Instance Method Details

- (Object) each {|chunk| ... }

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Iterates over the body in chunks. If the body has previously been read, this method can be called again and get the same sequence of chunks.

Yields:

  • (chunk)

Yield Parameters:

  • chunk (String)

    a chunk of the request body



143
144
145
146
147
148
149
150
# File 'lib/webmachine/adapters/rack.rb', line 143

def each
  if @value
    @value.each {|chunk| yield chunk }
  else
    @value = []
    @request.body.each {|chunk| @value << chunk; yield chunk }
  end
end

- (String) to_s

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Converts the body to a String so you can work with the entire thing.

Returns:

  • (String)

    the request body as a string



129
130
131
132
133
134
135
136
# File 'lib/webmachine/adapters/rack.rb', line 129

def to_s
  if @value
    @value.join
  else
    @request.body.rewind
    @request.body.read
  end
end