class Kwipper::HttpServer
Constants
- DEFAULT_PORT
Attributes
host[R]
Public Class Methods
new(bind = '127.0.0.1', port = 7335)
click to toggle source
Calls superclass method
# File lib/kwipper/http_server.rb, line 10 def initialize(bind = '127.0.0.1', port = 7335) @bind, @port = bind, port @host = "#@bind#{":#@port" unless port.to_i == DEFAULT_PORT}" log.debug "Starting server on #@host" super end
run(bind = '127.0.0.1', port = 7335)
click to toggle source
# File lib/kwipper/http_server.rb, line 6 def self.run(bind = '127.0.0.1', port = 7335) HttpServer.new(bind, port).serve end
Public Instance Methods
serve()
click to toggle source
# File lib/kwipper/http_server.rb, line 17 def serve load_models load_controllers parser = HttpParser.new Kwipper.log_startup_time while socket = accept begin request = parser.parse socket log.info "#{request.info} #{request.params.inspect unless request.params.empty?}".strip.green response = Application.new.respond_to request socket.write response.to_http_response rescue Errno::ECONNRESET, Errno::EPIPE => e log.info "#{e.class} #{e.message}".yellow rescue Kwipper::EmptyRequest => e log.warn "#{e.class} #{e.message}".yellow ensure socket.close end end rescue Interrupt socket.close if socket && !socket.closed? Model.db.close log.debug "Ok bye." end
Private Instance Methods
load_controllers()
click to toggle source
# File lib/kwipper/http_server.rb, line 55 def load_controllers Dir[File.join(Kwipper::ROOT, 'app/controllers/**/*.rb')].each do |controller| require controller end end
load_models()
click to toggle source
# File lib/kwipper/http_server.rb, line 49 def load_models Dir[File.join(Kwipper::ROOT, 'app/models/**/*.rb')].each do |model| require model end end