View difference between Paste ID: mN0ASLz5 and KFv0FgjH
SHOW: | | - or go back to the newest paste.
1
require 'socket'
2
require 'parseconfig'
3
require 'logger'
4
require 'celluloid/io'
5
require 'celluloid/autostart'
6
7
8
require_relative 'agrimi/answer_worker'
9
require_relative 'agrimi/request'
10
require_relative 'agrimi/response'
11
12
module Agrimi
13
  class HTTPServer
14
    attr_reader :config_path, :server_root, :port
15
    include Celluloid::IO
16
17
    def initialize(port, server_root)
18
      @logger = Logger.new(STDOUT)
19
      @logger.level = Logger::DEBUG
20
      @port = port
21
      @server_root = server_root
22
    end
23
24
    def start
25
      @logger.debug { "Opening server" }
26
      @tcp_server = TCPServer.new("0.0.0.0", @port)
27
      @logger.debug { "Listening to 0.0.0.0 port #{@port}
28
                      pointing #{@server_root}" }
29
      @pool = AnswerWorker.pool(size: 2)
30
      answer_worker = AnswerWorker.new
31
      client = nil
32
      loop do
33
        client = @tcp_server.accept
34
        @logger.debug { "Server accepted" }
35
        # Initiate new Actor to handle the request
36
        @pool.async.start(client, @server_root)
37
      end
38
      stop
39
    end
40
41
    def stop
42
      @logger.debug "Closing server"
43
      @tcp_server.close
44
      @pool.terminate
45
    end
46
  end
47-
end
47+
end
48
49
50
========================================================================
51
52
E, [2013-10-06T20:54:31.769633 #25191] ERROR -- : Agrimi::HTTPServer crashed!
53
NoMethodError: undefined method `new' for Celluloid::Logger:Module
54
	/home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize'
55
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send'
56
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch'
57
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch'
58
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/actor.rb:326:in `block in handle_message'
59
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize'
60
	/home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks/task_fiber.rb:11:in `block in create'
61
D, [2013-10-06T20:54:31.787851 #25191] DEBUG -- : Terminating 5 actors...
62
D, [2013-10-06T20:54:31.792897 #25191] DEBUG -- : Shutdown completed cleanly
63
/home/vasilakisfil/Development/agrimi/lib/agrimi.rb:18:in `initialize': undefined method `new' for Celluloid::Logger:Module (NoMethodError)
64
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `public_send'
65
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:25:in `dispatch'
66
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:67:in `dispatch'
67
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/actor.rb:326:in `block in handle_message'
68
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks.rb:42:in `block in initialize'
69
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/tasks/task_fiber.rb:11:in `block in create'
70
	from (celluloid):0:in `remote procedure call'
71
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/calls.rb:95:in `value'
72
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/proxies/sync_proxy.rb:28:in `method_missing'
73
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/legacy.rb:14:in `method_missing'
74
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid/proxies/actor_proxy.rb:25:in `_send_'
75
	from /home/vasilakisfil/.rvm/gems/ruby-1.9.3-p429/gems/celluloid-0.14.1/lib/celluloid.rb:129:in `new'
76
	from server.rb:4:in `<main>'