Class: Talkshow::Server

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/talkshow/server.rb

Constant Summary collapse

@@logfile =
'./talkshowserver.log'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.answer_queue(queue = nil) ⇒ Object



42
43
44
45
46
47
# File 'lib/talkshow/server.rb', line 42

def self.answer_queue(queue = nil)
  if queue
    @@answer_queue = queue
  end
  @@answer_queue
end

.question_queue(queue = nil) ⇒ Object



35
36
37
38
39
40
# File 'lib/talkshow/server.rb', line 35

def self.question_queue(queue = nil)
  if queue
    @@question_queue = queue
  end
  @@question_queue
end

.set_logfile(file) ⇒ Object



29
30
31
32
33
# File 'lib/talkshow/server.rb', line 29

def self.set_logfile file
  @@logfile = file
  @logger.close if @logger
  @logger = nil
end

.set_port(port) ⇒ Object



24
25
26
# File 'lib/talkshow/server.rb', line 24

def self.set_port port
  set :port, port
end

Instance Method Details

#handle_answer(params, data) ⇒ Object

Deal with an answer, push it back to the main thread



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# File 'lib/talkshow/server.rb', line 136

def handle_answer(params, data)
  if params[:status] != 'nop'
            
    Talkshow::Server.answer_queue.push( {
                                        :data    => data,
                                        :object  => params[:object],
                                        :status  => params[:status],
                                        :chunks  => params[:chunks],
                                        :payload => params[:payload],
                                        :id      => params[:id]
                                       } )
  end
  
  logger.info( "/answer ##{params[:id]}"+ ( params[:chunks] ? "(#{params[:payload].to_i+1}/#{params[:chunks]})" : '') +": #{data}" )
  if params[:id] == 0
    logger.info( "Reset received, talkshow reloaded")
  end
  
  content_type 'text/javascript'
  'ts.ack();'
end

#loggerObject



50
51
52
53
54
55
# File 'lib/talkshow/server.rb', line 50

def logger
  if !@logger
    @logger = Logger.new(@@logfile)
  end
  @logger
end