Class: Rack::Lint::Wrapper::InputWrapper

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

Instance Method Summary collapse

Constructor Details

#initialize(input) ⇒ InputWrapper

Returns a new instance of InputWrapper.

 496 497 498
# File 'lib/rack/lint.rb', line 496 def initialize(input) @input = input end

Instance Method Details

#close(*args) ⇒ Object

  • close can be called on the input stream to indicate that any remaining input is not needed.

 563 564 565
# File 'lib/rack/lint.rb', line 563 def close(*args) @input.close(*args) end

#each(*args) ⇒ Object

  • each must be called without arguments and only yield String values.

Raises:

 552 553 554 555 556 557 558 559 560
# File 'lib/rack/lint.rb', line 552 def each(*args) raise LintError, "rack.input#each called with arguments" unless args.size == 0 @input.each do |line| unless line.kind_of? String raise LintError, "rack.input#each didn't yield a String" end yield line end end

#gets(*args) ⇒ Object

  • gets must be called without arguments and return a String, or nil on EOF (end-of-file).

Raises:

 501 502 503 504 505 506 507 508 509 510 511
# File 'lib/rack/lint.rb', line 501 def gets(*args) raise LintError, "rack.input#gets called with arguments" unless args.size == 0 chunk = @input.gets unless chunk.nil? or chunk.kind_of? String raise LintError, "rack.input#gets didn't return a String" end chunk end

#read(*args) ⇒ Object

  • read behaves like IO#read. Its signature is read([length, [buffer]]).

    • If given, length must be a non-negative Integer (>= 0) or nil, and buffer must be a String and may not be nil.

    • If length is given and not nil, then this method reads at most length bytes from the input stream.

    • If length is not given or nil, then this method reads all data until EOF.

    • When EOF is reached, this method returns nil if length is given and not nil, or “” if length is not given or is nil.

    • If buffer is given, then the read data will be placed into buffer instead of a newly created String.

 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549
# File 'lib/rack/lint.rb', line 519 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