Class: SockJS::DelayedResponseBody
- Inherits:
-
Object
- Object
- SockJS::DelayedResponseBody
show all
- Includes:
- EventMachine::Deferrable
- Defined in:
- lib/sockjs/delayed-response-body.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of DelayedResponseBody.
11
12
13
|
# File 'lib/sockjs/delayed-response-body.rb', line 11
def initialize
@status = :created
end
|
Instance Attribute Details
#session ⇒ Object
Returns the value of attribute session.
9
10
11
|
# File 'lib/sockjs/delayed-response-body.rb', line 9
def session
@session
end
|
Instance Method Details
#call(body) ⇒ Object
15
16
17
18
19
|
# File 'lib/sockjs/delayed-response-body.rb', line 15
def call(body)
body.each do |chunk|
self.write(chunk)
end
end
|
#closed? ⇒ Boolean
61
62
63
|
# File 'lib/sockjs/delayed-response-body.rb', line 61
def closed?
@status == :closed
end
|
#each(&block) ⇒ Object
35
36
37
38
39
|
# File 'lib/sockjs/delayed-response-body.rb', line 35
def each(&block)
SockJS.debug "Opening the response."
@status = :open
@body_callback = block
end
|
#finish(data = nil) ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'lib/sockjs/delayed-response-body.rb', line 51
def finish(data = nil)
if @status == :closed
raise "Body is already closed!"
end
self.write(data) if data
self.succeed(true)
end
|
#succeed(from_server = true) ⇒ Object
41
42
43
44
45
46
47
48
49
|
# File 'lib/sockjs/delayed-response-body.rb', line 41
def succeed(from_server = true)
SockJS.debug "Closing the response."
if $DEBUG and false
SockJS.debug caller[0..-8].map { |item| item.sub(Dir.pwd + "/lib/", "") }.inspect
end
@status = :closed
super
end
|
#write(chunk) ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/sockjs/delayed-response-body.rb', line 21
def write(chunk)
unless @status == :open
raise "Body isn't open (status: #{@status}, trying to write #{chunk.inspect})"
end
unless chunk.respond_to?(:bytesize)
raise "Chunk is supposed to respond to #bytesize, but it doesn't.\nChunk: #{chunk.inspect} (#{chunk.class})"
end
SockJS.debug "body#write #{chunk.inspect}"
self.write_chunk(chunk)
end
|