master
 1require 'rack'
 2require 'puma'
 3require 'rack/handler/puma'
 4require 'redis'
 5
 6class Application
 7  attr_reader :redis
 8
 9  def initialize
10    @redis = Redis.new
11  end
12
13  def call(env)
14    if env['rack.hijack?']
15      env['rack.hijack'].call
16      io = env['rack.hijack_io']
17      redis.subscribe("ruby") do |on|
18        on.message do |channel, message|
19          puts message.inspect
20          io.write(message)
21        end
22      end
23      #Thread.new do
24        #loop do
25          #sleep 5
26          #io.write("I'm awake...")
27        #end
28      #end
29    else
30      ['200', {'Content-Type' => 'text/html'}, ['A barebones rack app.']]
31    end
32  end
33end
34
35Rack::Handler::Puma.run Application.new