module Sinatra::Streaming::Stream
Attributes
app[RW]
closed[RW]
closed?[RW]
lineno[RW]
pos[RW]
tell[RW]
transformer[RW]
Public Class Methods
extended(obj)
click to toggle source
# File lib/sinatra/streaming.rb, line 92 def self.extended(obj) obj.closed, obj.lineno, obj.pos = false, 0, 0 obj.callback { obj.closed = true } obj.errback { obj.closed = true } end
Public Instance Methods
<<(data)
click to toggle source
Calls superclass method
# File lib/sinatra/streaming.rb, line 98 def <<(data) raise IOError, 'not opened for writing' if closed? @transformer ||= nil data = data.to_s data = @transformer[data] if @transformer @pos += data.bytesize super(data) end
close_read()
click to toggle source
# File lib/sinatra/streaming.rb, line 156 def close_read raise IOError, "closing non-duplex IO for reading" end
closed_read?()
click to toggle source
# File lib/sinatra/streaming.rb, line 160 def closed_read? true end
closed_write?()
click to toggle source
# File lib/sinatra/streaming.rb, line 164 def closed_write? closed? end
dummy(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 220 def dummy(*) end
each()
click to toggle source
Calls superclass method
# File lib/sinatra/streaming.rb, line 108 def each # that way body.each.map { ... } works return self unless block_given? super end
enum_not_open_for_reading(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 208 def enum_not_open_for_reading(*) not_open_for_reading if block_given? enum_for(:not_open_for_reading) end
external_encoding()
click to toggle source
# File lib/sinatra/streaming.rb, line 168 def external_encoding Encoding.find settings.default_encoding rescue NameError settings.default_encoding end
map(&block)
click to toggle source
# File lib/sinatra/streaming.rb, line 114 def map(&block) # dup would not copy the mixin clone.map!(&block) end
map!(&block)
click to toggle source
# File lib/sinatra/streaming.rb, line 119 def map!(&block) @transformer ||= nil if @transformer inner, outer = @transformer, block block = proc { |value| outer[inner[value]] } end @transformer = block self end
print(*args)
click to toggle source
# File lib/sinatra/streaming.rb, line 138 def print(*args) args.each { |arg| self << arg } nil end
printf(format, *args)
click to toggle source
# File lib/sinatra/streaming.rb, line 143 def printf(format, *args) print(format.to_s % args) end
putc(c)
click to toggle source
# File lib/sinatra/streaming.rb, line 147 def putc(c) print c.chr end
puts(*args)
click to toggle source
# File lib/sinatra/streaming.rb, line 151 def puts(*args) args.each { |arg| self << "#{arg}\n" } nil end
rewind()
click to toggle source
# File lib/sinatra/streaming.rb, line 182 def rewind @pos = @lineno = 0 end
seek(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 227 def seek(*) 0 end
Also aliased as: sysseek
settings()
click to toggle source
# File lib/sinatra/streaming.rb, line 178 def settings app.settings end
sync()
click to toggle source
# File lib/sinatra/streaming.rb, line 233 def sync true end
tty?()
click to toggle source
# File lib/sinatra/streaming.rb, line 237 def tty? false end
Also aliased as: isatty
write(data)
click to toggle source
# File lib/sinatra/streaming.rb, line 130 def write(data) self << data data.to_s.bytesize end
Also aliased as: syswrite, write_nonblock
Private Instance Methods
not_open_for_reading(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 186 def not_open_for_reading(*) raise IOError, "not opened for reading" end