Class: Net::BufferedIO
- Defined in:
- lib/extensions/net-http/net/protocol.rb
Overview
:nodoc: internal use only
Direct Known Subclasses
Instance Attribute Summary collapse
-
#debug_output ⇒ Object
Returns the value of attribute debug_output.
-
#io ⇒ Object
readonly
Returns the value of attribute io.
-
#read_timeout ⇒ Object
Returns the value of attribute read_timeout.
Instance Method Summary collapse
- #close ⇒ Object
- #closed? ⇒ Boolean
-
#initialize(io) ⇒ BufferedIO
constructor
A new instance of BufferedIO.
- #inspect ⇒ Object
- #read(len, dest = '', ignore_eof = false) ⇒ Object
- #read_all(dest = '') ⇒ Object
- #readline ⇒ Object
- #readuntil(terminator, ignore_eof = false) ⇒ Object
- #write(str) ⇒ Object
- #writeline(str) ⇒ Object
Constructor Details
#initialize(io) ⇒ BufferedIO
Returns a new instance of BufferedIO.
50 51 52 53 54 55 |
# File 'lib/extensions/net-http/net/protocol.rb', line 50 def initialize(io) @io = io @read_timeout = 60 @debug_output = nil @rbuf = '' end |
Instance Attribute Details
#debug_output ⇒ Object
Returns the value of attribute debug_output.
59 60 61 |
# File 'lib/extensions/net-http/net/protocol.rb', line 59 def debug_output @debug_output end |
#io ⇒ Object (readonly)
Returns the value of attribute io.
57 58 59 |
# File 'lib/extensions/net-http/net/protocol.rb', line 57 def io @io end |
#read_timeout ⇒ Object
Returns the value of attribute read_timeout.
58 59 60 |
# File 'lib/extensions/net-http/net/protocol.rb', line 58 def read_timeout @read_timeout end |
Instance Method Details
#close ⇒ Object
69 70 71 |
# File 'lib/extensions/net-http/net/protocol.rb', line 69 def close @io.close end |
#closed? ⇒ Boolean
65 66 67 |
# File 'lib/extensions/net-http/net/protocol.rb', line 65 def closed? @io.closed? end |
#inspect ⇒ Object
61 62 63 |
# File 'lib/extensions/net-http/net/protocol.rb', line 61 def inspect "#<#{self.class} io=#{@io}>" end |
#read(len, dest = '', ignore_eof = false) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/extensions/net-http/net/protocol.rb', line 79 def read(len, dest = '', ignore_eof = false) LOG "reading #{len} bytes..." read_bytes = 0 begin while read_bytes + @rbuf.size < len dest << (s = rbuf_consume(@rbuf.size)) read_bytes += s.size rbuf_fill end dest << (s = rbuf_consume(len - read_bytes)) read_bytes += s.size rescue EOFError raise unless ignore_eof end LOG "read #{read_bytes} bytes" dest end |
#read_all(dest = '') ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/extensions/net-http/net/protocol.rb', line 97 def read_all(dest = '') LOG 'reading all...' read_bytes = 0 begin while true dest << (s = rbuf_consume(@rbuf.size)) read_bytes += s.size rbuf_fill end rescue EOFError ; end LOG "read #{read_bytes} bytes" dest end |
#readline ⇒ Object
125 126 127 |
# File 'lib/extensions/net-http/net/protocol.rb', line 125 def readline readuntil("\n").chop end |
#readuntil(terminator, ignore_eof = false) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/extensions/net-http/net/protocol.rb', line 113 def readuntil(terminator, ignore_eof = false) begin until idx = @rbuf.index(terminator) rbuf_fill end return rbuf_consume(idx + terminator.size) rescue EOFError raise unless ignore_eof return rbuf_consume(@rbuf.size) end end |
#write(str) ⇒ Object
167 168 169 170 171 |
# File 'lib/extensions/net-http/net/protocol.rb', line 167 def write(str) writing { write0 str } end |
#writeline(str) ⇒ Object
173 174 175 176 177 |
# File 'lib/extensions/net-http/net/protocol.rb', line 173 def writeline(str) writing { write0 str + "\r\n" } end |