lib/em-twitter/response.rb
module EventMachine
module Twitter
class Response
attr_reader :body, :timestamp
def initialize(body = '')
@body = body
end
def concat(data)
@timestamp = Time.now
return unless data && data.size > 0
data.strip!
return if data.empty?
if json_start?(data) || json_end?(data)
@body << data
end
end
alias :<< :concat
def complete?
@body.size > 0 && json_start?(@body) && json_end?(@body)
end
def older_than?(seconds)
@timestamp ||= Time.now
age > seconds
end
def empty?
@body == ''
end
def reset
@body = ''
end
private
def age
Time.now - @timestamp
end
def json_start?(data)
data[0,1] == '{'
end
def json_end?(data)
data[data.length-1,1] == '}'
end
end
end
end