Sha256: e675b3f94602d253504f4b5fc41a4f3d923aebcc30b3231ecc80d482c48fea19

Contents?: true

Size: 931 Bytes

Versions: 3

Compression:

Stored size: 931 Bytes

Contents

# inlined from sinatra-synchrony
require 'sinatra/base'
require 'rack/fiber_pool'
require 'eventmachine'
require 'em-http-request'
require 'em-synchrony'
require 'em-resolv-replace'

module Sinatra
  module Synchrony
    def self.registered(app)
      app.disable :threaded
    end

    def setup_sessions(builder)
      builder.use Rack::FiberPool, {:rescue_exception => handle_exception } unless test?
      super
    end

    def handle_exception
      Proc.new do |env, e|
        if settings.show_exceptions?
          request = Sinatra::Request.new(env)
          printer = Sinatra::ShowExceptions.new(proc{ raise e })
          s, h, b = printer.call(env)
          [s, h, b]
        else
          LitmusPaper.logger.info(e)
          [500, {}, ""]
        end
      end
    end

    class << self
      def overload_tcpsocket!
        require 'sinatra/synchrony/tcpsocket'
      end
    end
  end
  register Synchrony
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
litmus_paper-0.2.2 lib/sinatra/synchrony.rb
litmus_paper-0.2.1 lib/sinatra/synchrony.rb
litmus_paper-0.2.0 lib/sinatra/synchrony.rb