Module: Sinatra::Streaming::Stream
- Defined in:
- lib/sinatra/streaming.rb
Instance Attribute Summary collapse
-
#app ⇒ Object
Returns the value of attribute app.
-
#closed ⇒ Object
(also: #closed?)
Returns the value of attribute closed.
-
#lineno ⇒ Object
Returns the value of attribute lineno.
-
#pos ⇒ Object
(also: #tell)
Returns the value of attribute pos.
-
#transformer ⇒ Object
Returns the value of attribute transformer.
Class Method Summary collapse
Instance Method Summary collapse
- #<<(data) ⇒ Object
- #close_read ⇒ Object
- #closed_read? ⇒ Boolean
- #closed_write? ⇒ Boolean
- #dummy ⇒ Object (also: #flush, #fsync, #internal_encoding, #pid)
- #each ⇒ Object
- #enum_not_open_for_reading ⇒ Object (also: #chars, #each_line, #each_byte, #each_char, #lines)
- #external_encoding ⇒ Object
- #map(&block) ⇒ Object
- #map!(&block) ⇒ Object
- #print(*args) ⇒ Object
- #printf(format, *args) ⇒ Object
- #putc(c) ⇒ Object
- #puts(*args) ⇒ Object
- #rewind ⇒ Object
- #seek ⇒ Object (also: #sysseek)
- #settings ⇒ Object
- #sync ⇒ Object
- #tty? ⇒ Boolean (also: #isatty)
- #write(data) ⇒ Object (also: #syswrite, #write_nonblock)
Instance Attribute Details
#app ⇒ Object
Returns the value of attribute app.
89 90 91 |
# File 'lib/sinatra/streaming.rb', line 89 def app @app end |
#closed ⇒ Object Also known as: closed?
Returns the value of attribute closed.
89 90 91 |
# File 'lib/sinatra/streaming.rb', line 89 def closed @closed end |
#lineno ⇒ Object
Returns the value of attribute lineno.
89 90 91 |
# File 'lib/sinatra/streaming.rb', line 89 def lineno @lineno end |
#pos ⇒ Object Also known as: tell
Returns the value of attribute pos.
89 90 91 |
# File 'lib/sinatra/streaming.rb', line 89 def pos @pos end |
#transformer ⇒ Object
Returns the value of attribute transformer.
89 90 91 |
# File 'lib/sinatra/streaming.rb', line 89 def transformer @transformer end |
Class Method Details
.extended(obj) ⇒ Object
93 94 95 96 97 |
# File 'lib/sinatra/streaming.rb', line 93 def self.extended(obj) obj.closed, obj.lineno, obj.pos = false, 0, 0 obj.callback { obj.closed = true } obj.errback { obj.closed = true } end |
Instance Method Details
#<<(data) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/sinatra/streaming.rb', line 99 def <<(data) raise IOError, 'not opened for writing' if closed? data = data.to_s data = @transformer[data] if @transformer @pos += data.bytesize super(data) end |
#close_read ⇒ Object
153 154 155 |
# File 'lib/sinatra/streaming.rb', line 153 def close_read raise IOError, "closing non-duplex IO for reading" end |
#closed_read? ⇒ Boolean
157 158 159 |
# File 'lib/sinatra/streaming.rb', line 157 def closed_read? true end |
#closed_write? ⇒ Boolean
161 162 163 |
# File 'lib/sinatra/streaming.rb', line 161 def closed_write? closed? end |
#dummy ⇒ Object Also known as: flush, fsync, internal_encoding, pid
217 |
# File 'lib/sinatra/streaming.rb', line 217 def dummy(*) end |
#each ⇒ Object
107 108 109 110 111 |
# File 'lib/sinatra/streaming.rb', line 107 def each # that way body.each.map { ... } works return self unless block_given? super end |
#enum_not_open_for_reading ⇒ Object Also known as: chars, each_line, each_byte, each_char, lines
205 206 207 208 |
# File 'lib/sinatra/streaming.rb', line 205 def enum_not_open_for_reading(*) not_open_for_reading if block_given? enum_for(:not_open_for_reading) end |
#external_encoding ⇒ Object
165 166 167 168 169 |
# File 'lib/sinatra/streaming.rb', line 165 def external_encoding Encoding.find settings.default_encoding rescue NameError settings.default_encoding end |
#map(&block) ⇒ Object
113 114 115 116 |
# File 'lib/sinatra/streaming.rb', line 113 def map(&block) # dup would not copy the mixin clone.map!(&block) end |
#map!(&block) ⇒ Object
118 119 120 121 122 123 124 125 |
# File 'lib/sinatra/streaming.rb', line 118 def map!(&block) if @transformer inner, outer = @transformer, block block = proc { |value| outer[inner[value]] } end @transformer = block self end |
#print(*args) ⇒ Object
135 136 137 138 |
# File 'lib/sinatra/streaming.rb', line 135 def print(*args) args.each { |arg| self << arg } nil end |
#printf(format, *args) ⇒ Object
140 141 142 |
# File 'lib/sinatra/streaming.rb', line 140 def printf(format, *args) print(format.to_s % args) end |
#putc(c) ⇒ Object
144 145 146 |
# File 'lib/sinatra/streaming.rb', line 144 def putc(c) print c.chr end |
#puts(*args) ⇒ Object
148 149 150 151 |
# File 'lib/sinatra/streaming.rb', line 148 def puts(*args) args.each { |arg| self << "#{arg}\n" } nil end |
#rewind ⇒ Object
179 180 181 |
# File 'lib/sinatra/streaming.rb', line 179 def rewind @pos = @lineno = 0 end |
#seek ⇒ Object Also known as: sysseek
224 225 226 |
# File 'lib/sinatra/streaming.rb', line 224 def seek(*) 0 end |
#settings ⇒ Object
175 176 177 |
# File 'lib/sinatra/streaming.rb', line 175 def settings app.settings end |
#sync ⇒ Object
230 231 232 |
# File 'lib/sinatra/streaming.rb', line 230 def sync true end |
#tty? ⇒ Boolean Also known as: isatty
234 235 236 |
# File 'lib/sinatra/streaming.rb', line 234 def tty? false end |
#write(data) ⇒ Object Also known as: syswrite, write_nonblock
127 128 129 130 |
# File 'lib/sinatra/streaming.rb', line 127 def write(data) self << data data.to_s.bytesize end |