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 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
Public Instance Methods
<<(data)
click to toggle source
Calls superclass method
# 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()
click to toggle source
# File lib/sinatra/streaming.rb, line 153 def close_read raise IOError, "closing non-duplex IO for reading" end
closed_read?()
click to toggle source
# File lib/sinatra/streaming.rb, line 157 def closed_read? true end
closed_write?()
click to toggle source
# File lib/sinatra/streaming.rb, line 161 def closed_write? closed? end
dummy(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 217 def dummy(*) end
each()
click to toggle source
Calls superclass method
# 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(*)
click to toggle source
# 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()
click to toggle source
# File lib/sinatra/streaming.rb, line 165 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 113 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 118 def map!(&block) 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 135 def print(*args) args.each { |arg| self << arg } nil end
printf(format, *args)
click to toggle source
# File lib/sinatra/streaming.rb, line 140 def printf(format, *args) print(format.to_s % args) end
putc(c)
click to toggle source
# File lib/sinatra/streaming.rb, line 144 def putc(c) print c.chr end
puts(*args)
click to toggle source
# File lib/sinatra/streaming.rb, line 148 def puts(*args) args.each { |arg| self << "#{arg}\n" } nil end
rewind()
click to toggle source
# File lib/sinatra/streaming.rb, line 179 def rewind @pos = @lineno = 0 end
seek(*)
click to toggle source
# File lib/sinatra/streaming.rb, line 224 def seek(*) 0 end
Also aliased as: sysseek
settings()
click to toggle source
# File lib/sinatra/streaming.rb, line 175 def settings app.settings end
sync()
click to toggle source
# File lib/sinatra/streaming.rb, line 230 def sync true end
tty?()
click to toggle source
# File lib/sinatra/streaming.rb, line 234 def tty? false end
Also aliased as: isatty
write(data)
click to toggle source
# File lib/sinatra/streaming.rb, line 127 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 183 def not_open_for_reading(*) raise IOError, "not opened for reading" end