Sha256: bb9ba96a1c89f704ecf1a65c51629bb63cce6b1927cb377aa43500b9c53864cd
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# -*- encoding: binary -*- require 'rainbows' module Rainbows class HttpServer < ::Unicorn::HttpServer include Rainbows @@instance = nil class << self def setup(block) @@instance.instance_eval(&block) end end def initialize(app, options) @@instance = self rv = super(app, options) defined?(@use) or use(:Base) @worker_connections ||= MODEL_WORKER_CONNECTIONS[@use] end def use(*args) model = args.shift or return @use mod = begin Rainbows.const_get(model) rescue NameError raise ArgumentError, "concurrency model #{model.inspect} not supported" end Module === mod or raise ArgumentError, "concurrency model #{model.inspect} not supported" extend(mod) Const::RACK_DEFAULTS['rainbows.model'] = @use = model Const::RACK_DEFAULTS['rack.multithread'] = !!(/Thread/ =~ model.to_s) Const::RACK_DEFAULTS['rainbows.autochunk'] = (model.to_s == "Rev") end def worker_connections(*args) return @worker_connections if args.empty? nr = args.first (Integer === nr && nr > 0) or raise ArgumentError, "worker_connections must be a positive Integer" @worker_connections = nr end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rainbows-0.3.0 | lib/rainbows/http_server.rb |