Class: Gem::Src::Srv::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/gem/src/srv/server.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue) ⇒ Server

Returns a new instance of Server.



9
10
11
# File 'lib/gem/src/srv/server.rb', line 9

def initialize(queue)
  @queue = queue
end

Class Method Details

.start(queue) ⇒ Object



5
6
7
# File 'lib/gem/src/srv/server.rb', line 5

def self.start(queue)
  self.new(queue).start
end

Instance Method Details

#startObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gem/src/srv/server.rb', line 13

def start
  srv = WEBrick::HTTPServer.new(
    BindAddress: '127.0.0.1',
    Port: Configuration::PORT,
  )
  srv.mount_proc('/gem_install') do |req, resp|
    if req.request_method != 'POST'
      resp.status = 404
      next
    end

    body = JSON.parse(req.body)
    @queue << Spec.new(body['name'], body['homepage'])
  end
  trap('INT') { srv.shutdown }
  srv.start
end