Class: PhusionPassenger::Utils::PseudoIO
- Inherits:
-
Object
- Object
- PhusionPassenger::Utils::PseudoIO
show all
- Defined in:
- lib/phusion_passenger/utils.rb
Overview
Wraps another IO object. Everything written to the PseudoIO will not only be immediately forwarded to the underlying IO object but will also be captured in a buffer. The contents of the buffer can be retrieved by calling #done!.
Instance Method Summary
collapse
Constructor Details
#initialize(sink) ⇒ PseudoIO
Returns a new instance of PseudoIO.
519
520
521
522
|
# File 'lib/phusion_passenger/utils.rb', line 519
def initialize(sink)
@sink = sink || File.open("/dev/null", "w")
@buffer = StringIO.new
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args, &block) ⇒ Object
534
535
536
537
|
# File 'lib/phusion_passenger/utils.rb', line 534
def method_missing(*args, &block)
@buffer.send(*args, &block) if @buffer && args.first != :reopen
return @sink.send(*args, &block)
end
|
Instance Method Details
524
525
526
527
528
|
# File 'lib/phusion_passenger/utils.rb', line 524
def done!
result = @buffer.string
@buffer = nil
return result
end
|
#respond_to?(symbol, include_private = false) ⇒ Boolean
539
540
541
|
# File 'lib/phusion_passenger/utils.rb', line 539
def respond_to?(symbol, include_private = false)
return @sink.respond_to?(symbol, include_private)
end
|
530
531
532
|
# File 'lib/phusion_passenger/utils.rb', line 530
def to_io
return self
end
|