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 112
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
# File lib/sinatra/streaming.rb, line 118
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
bytes(*) click to toggle source
chars(*) click to toggle source
close() click to toggle source
# File lib/sinatra/streaming.rb, line 172
def close
  @scheduler.schedule { succeed }
  nil
end
close_read() click to toggle source
# File lib/sinatra/streaming.rb, line 177
def close_read
  raise IOError, "closing non-duplex IO for reading"
end
closed_read?() click to toggle source
# File lib/sinatra/streaming.rb, line 181
def closed_read?
  true
end
closed_write?() click to toggle source
# File lib/sinatra/streaming.rb, line 185
def closed_write?
  closed?
end
dummy(*) click to toggle source
# File lib/sinatra/streaming.rb, line 241
def dummy(*) end
Also aliased as: flush, fsync, internal_encoding, pid
each() click to toggle source
# File lib/sinatra/streaming.rb, line 126
def each
  # that way body.each.map { ... } works
  return self unless block_given?
  super
end
each_byte(*) click to toggle source
each_char(*) click to toggle source
each_line(*) click to toggle source
enum_not_open_for_reading(*) click to toggle source
# File lib/sinatra/streaming.rb, line 229
def enum_not_open_for_reading(*)
  not_open_for_reading if block_given?
  enum_for(:not_open_for_reading)
end
Also aliased as: chars, each_line, each_byte, each_char, lines
eof(*) click to toggle source
eof?(*) click to toggle source
external_encoding() click to toggle source
# File lib/sinatra/streaming.rb, line 189
def external_encoding
  Encoding.find settings.default_encoding
rescue NameError
  settings.default_encoding
end
flush(*) click to toggle source
Alias for: dummy
fsync(*) click to toggle source
Alias for: dummy
getbyte(*) click to toggle source
getc(*) click to toggle source
gets(*) click to toggle source
internal_encoding(*) click to toggle source
Alias for: dummy
isatty() click to toggle source
Alias for: tty?
lines(*) click to toggle source
map(&block) click to toggle source
# File lib/sinatra/streaming.rb, line 132
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 137
def map!(&block)
  if @transformer
    inner, outer = @transformer, block
    block = proc { |value| outer[inner[value]] }
  end
  @transformer = block
  self
end
pid(*) click to toggle source
Alias for: dummy
print(*args) click to toggle source
printf(format, *args) click to toggle source
# File lib/sinatra/streaming.rb, line 159
def printf(format, *args)
  print(format.to_s % args)
end
putc(c) click to toggle source
# File lib/sinatra/streaming.rb, line 163
def putc(c)
  print c.chr
end
puts(*args) click to toggle source
# File lib/sinatra/streaming.rb, line 167
def puts(*args)
  args.each { |arg| self << "#{arg}\n" }
  nil
end
read(*) click to toggle source
read_nonblock(*) click to toggle source
readbyte(*) click to toggle source
readchar(*) click to toggle source
readline(*) click to toggle source
readlines(*) click to toggle source
readpartial(*) click to toggle source
rewind() click to toggle source
# File lib/sinatra/streaming.rb, line 203
def rewind
  @pos = @lineno = 0
end
seek(*) click to toggle source
# File lib/sinatra/streaming.rb, line 248
def seek(*)
  0
end
Also aliased as: sysseek
settings() click to toggle source
# File lib/sinatra/streaming.rb, line 199
def settings
  app.settings
end
sync() click to toggle source
# File lib/sinatra/streaming.rb, line 254
def sync
  true
end
sysread(*) click to toggle source
sysseek(*) click to toggle source
Alias for: seek
syswrite(data) click to toggle source
Alias for: write
tty?() click to toggle source
# File lib/sinatra/streaming.rb, line 258
def tty?
  false
end
Also aliased as: isatty
ungetbyte(*) click to toggle source
ungetc(*) click to toggle source
write(data) click to toggle source
# File lib/sinatra/streaming.rb, line 146
def write(data)
  self << data
  data.to_s.bytesize
end
Also aliased as: syswrite, write_nonblock
write_nonblock(data) click to toggle source
Alias for: write