File: server_proxy.rb

package info (click to toggle)
ruby-faye 1.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 1,792 kB
  • sloc: javascript: 14,833; ruby: 5,068; makefile: 30
file content (49 lines) | stat: -rw-r--r-- 847 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class ServerProxy < Rack::Proxy
  HOST = 'localhost'
  PORT = '4180'

  class App
    def initialize(app)
      @app = app
    end

    def listen(port)
      events = Puma::Events.new($stdout, $stderr)
      binder = Puma::Binder.new(events)
      binder.parse(["tcp://0.0.0.0:#{ PORT }"], self)

      @server = Puma::Server.new(self, events)
      @server.binder = binder
      @thread = @server.run
    rescue => e
    end

    def stop
      @server.stop
      @thread.join
    end

    def call(env)
      @app.call(env)
    end

    def log(message)
    end
  end

  def initialize(rack_app)
    @app = App.new(rack_app)
    @app.listen(PORT)
  end

  def stop
    @app.stop
  end

  def rewrite_env(env)
    env['HTTP_HOST'] = HOST
    env['SERVER_PORT'] = PORT
    env[Faye::RackAdapter::HTTP_X_NO_CONTENT_LENGTH] = '1'
    env
  end
end