Class: Rack::Lint::Wrapper::StreamWrapper

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
vendor/bundler/ruby/3.4.0/bundler/gems/rack-40d68f842b5f/lib/rack/lint.rb

Constant Summary collapse

REQUIRED_METHODS =

The semantics of these +IO+ methods must be a best effort match to those of a normal Ruby +IO+ or +Socket+ object, using standard arguments and raising standard exceptions. Servers may simply pass on real +IO+ objects to the Streaming Body. In some cases (e.g. when using transfer-encoding or HTTP/2+), the server may need to provide a wrapper that implements the required methods, in order to provide the correct semantics.

[
  :read, :write, :<<, :flush, :close,
  :close_read, :close_write, :closed?
]

Instance Method Summary collapse

Constructor Details

#initialize(stream) ⇒ StreamWrapper

Returns a new instance of StreamWrapper.



948
949
950
951
952
953
954
# File 'vendor/bundler/ruby/3.4.0/bundler/gems/rack-40d68f842b5f/lib/rack/lint.rb', line 948

def initialize(stream)
  @stream = stream

  REQUIRED_METHODS.each do |method_name|
    raise LintError, "Stream must respond to #{method_name}" unless stream.respond_to?(method_name)
  end
end