Sha256: 178cf8b9e9731efe5a7b36107a298ba84ff11f0e84b13516c9ebcae8a7171c9e

Contents?: true

Size: 917 Bytes

Versions: 4

Compression:

Stored size: 917 Bytes

Contents

require 'cgi'
require 'fcgi'

require 'nitro/context'
require 'nitro/dispatcher'
require 'nitro/adapter/cgi'

require 'glue/flexob'

# Speeds things up, more comaptible with OSX.

Socket.do_not_reverse_lookup = true

module Nitro

# FastCGI Adaptor. FastCGI is a language independent, 
# scalable, open extension to CGI that provides high 
# performance without the limitations of server 
# specific APIs.
#
# No need for connection pooling, fastcgi uses processes.

class FastCGI

  def self.start(server)
    FCGI.each do |cgi|
      begin
        context = Context.new(server)

        context.in = cgi.in
        context.headers = cgi.env

        CgiUtils.parse_params(context)
        CgiUtils.parse_cookies(context)
        
        context.render(context.path)

        cgi.out.print(CgiUtils.response_headers(context))
        cgi.out.print(context.out)

        cgi.finish
      end
    end
  end

end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
nitro-0.21.2 lib/nitro/adapter/fastcgi.rb
nitro-0.21.0 lib/nitro/adapter/fastcgi.rb
nitro-0.23.0 lib/nitro/adapter/fastcgi.rb
nitro-0.22.0 lib/nitro/adapter/fastcgi.rb