Class: Sinatra::Helpers::Stream
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/sinatra/base.rb |
Overview
Class of the response body in case you use #stream.
Three things really matter: The front and back block (back being the
block generating content, front the one sending it to the client) and
the scheduler, integrating with whatever concurrency feature the ::Rack
handler is using.
Scheduler has to respond to defer and schedule.
Class Method Summary
Instance Attribute Summary
- #closed? ⇒ Boolean readonly
Instance Method Summary
- #<<(data)
- #callback(&block) (also: #errback)
- #close
- #each(&front)
-
#errback(&block)
Alias for #callback.
Constructor Details
.new(scheduler = self.class, keep_open = false, &back) ⇒ Stream
Class Method Details
.defer
[ GitHub ]# File 'lib/sinatra/base.rb', line 462
def self.defer(*) yield end
.schedule
[ GitHub ]# File 'lib/sinatra/base.rb', line 461
def self.schedule(*) yield end
Instance Attribute Details
#closed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/sinatra/base.rb', line 505
def closed? @closed end
Instance Method Details
#<<(data)
[ GitHub ]# File 'lib/sinatra/base.rb', line 492
def <<(data) @scheduler.schedule { @front.call(data.to_s) } self end
#callback(&block) Also known as: #errback
[ GitHub ]# File 'lib/sinatra/base.rb', line 497
def callback(&block) return yield if closed? @callbacks << block end
#close
[ GitHub ]#each(&front)
[ GitHub ]#errback(&block)
Alias for #callback.
# File 'lib/sinatra/base.rb', line 503
alias errback callback