Class: Rack::Lint::Wrapper::InputWrapper
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | lib/rack/lint.rb |
Class Method Summary
- .new(input) ⇒ InputWrapper constructor
Instance Method Summary
-
#close(*args)
#close can be called on the input stream to indicate that any remaining input is not needed.
-
#each(*args)
#each must be called without arguments and only yield
Stringvalues.
-
#gets(*args)
#gets must be called without arguments and return a
String, ornilon EOF (end-of-file).
-
#read(*args)
#read behaves like
IO#read.
Constructor Details
.new(input) ⇒ InputWrapper
# File 'lib/rack/lint.rb', line 532
def initialize(input) @input = input end
Instance Method Details
#close(*args)
-
closecan be called on the input stream to indicate that any remaining input is not needed.
# File 'lib/rack/lint.rb', line 599
def close(*args) @input.close(*args) end
#each(*args)
-
eachmust be called without arguments and only yieldStringvalues.
#gets(*args)
-
getsmust be called without arguments and return aString, ornilon EOF (end-of-file).
#read(*args)
-
readbehaves likeIO#read. Its signature isread([length, [buffer]]).-
If given,
lengthmust be a non-negative Integer (>= 0) ornil, andbuffermust be aStringand may not benil. -
If
lengthis given and notnil, then this method reads at mostlengthbytes from the input stream. -
If
lengthis not given ornil, then this method reads all data until EOF. -
When EOF is reached, this method returns
niliflengthis given and notnil, or“”iflengthis not given or isnil. -
If
bufferis given, then the read data will be placed intobufferinstead of a newly createdString.
-
# File 'lib/rack/lint.rb', line 555
def read(*args) unless args.size <= 2 raise LintError, "rack.input#read called with too many arguments" end if args.size >= 1 unless args.first.kind_of?(Integer) || args.first.nil? raise LintError, "rack.input#read called with non-integer and non-nil length" end unless args.first.nil? || args.first >= 0 raise LintError, "rack.input#read called with a negative length" end end if args.size >= 2 unless args[1].kind_of?(String) raise LintError, "rack.input#read called with non-String buffer" end end chunk = @input.read(*args) unless chunk.nil? or chunk.kind_of? String raise LintError, "rack.input#read didn't return nil or a String" end if args[0].nil? unless !chunk.nil? raise LintError, "rack.input#read(nil) returned nil on EOF" end end chunk end