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 = false
  obj.lineno = 0
  obj.pos = 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 100
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
bytes(*)
chars(*)
close_read() click to toggle source
# File lib/sinatra/streaming.rb, line 160
def close_read
  raise IOError, 'closing non-duplex IO for reading'
end
closed_read?() click to toggle source
# File lib/sinatra/streaming.rb, line 164
def closed_read?
  true
end
closed_write?() click to toggle source
# File lib/sinatra/streaming.rb, line 168
def closed_write?
  closed?
end
dummy(*) click to toggle source
# File lib/sinatra/streaming.rb, line 220
def dummy(*) end
Also aliased as: flush, fsync, internal_encoding, pid
each() click to toggle source
Calls superclass method
# File lib/sinatra/streaming.rb, line 110
def each
  # that way body.each.map { ... } works
  return self unless block_given?

  super
end
each_byte(*)
each_char(*)
each_line(*)
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
Also aliased as: chars, each_line, each_byte, each_char, lines
eof(*)
eof?(*)
external_encoding() click to toggle source
# File lib/sinatra/streaming.rb, line 172
def external_encoding
  Encoding.find settings.default_encoding
rescue NameError
  settings.default_encoding
end
flush(*)
Alias for: dummy
fsync(*)
Alias for: dummy
getbyte(*)
getc(*)
gets(*)
internal_encoding(*)
Alias for: dummy
isatty()
Alias for: tty?
lines(*)
map(&block) click to toggle source
# File lib/sinatra/streaming.rb, line 117
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 122
def map!(&block)
  @transformer ||= nil

  if @transformer
    inner = @transformer
    outer = block
    block = proc { |value| outer[inner[value]] }
  end
  @transformer = block
  self
end
pid(*)
Alias for: dummy
print(*args) click to toggle source
printf(format, *args) click to toggle source
# File lib/sinatra/streaming.rb, line 147
def printf(format, *args)
  print(format.to_s % args)
end
putc(c) click to toggle source
# File lib/sinatra/streaming.rb, line 151
def putc(c)
  print c.chr
end
puts(*args) click to toggle source
# File lib/sinatra/streaming.rb, line 155
def puts(*args)
  args.each { |arg| self << "#{arg}\n" }
  nil
end
read(*)
read_nonblock(*)
readbyte(*)
readchar(*)
readline(*)
readlines(*)
readpartial(*)
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
sysread(*)
sysseek(*)
Alias for: seek
syswrite(data)
Alias for: write
tty?() click to toggle source
# File lib/sinatra/streaming.rb, line 237
def tty?
  false
end
Also aliased as: isatty
ungetbyte(*)
ungetc(*)
write(data) click to toggle source
# File lib/sinatra/streaming.rb, line 134
def write(data)
  self << data
  data.to_s.bytesize
end
Also aliased as: syswrite, write_nonblock
write_nonblock(data)
Alias for: write

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