Sha256: 7cee788b523ee2c130ebc64ba0ec522fe9313ead6e9e042bf5340d4adda3302f

Contents?: true

Size: 656 Bytes

Versions: 1

Compression:

Stored size: 656 Bytes

Contents

require 'reel'

class Eye::Http
  autoload :Router,   'eye/http/router'

  attr_reader :server, :host, :port

  def initialize(host, port)
    @host = host
    @port = port.to_i
    @router = Router
  end

  def start
    stop 

    @server = Reel::Server.supervise(@host, @port) do |connection|
      while request = connection.request
        status, headers, body = @router.call(Rack::MockRequest.env_for(request.url, :method => request.method, :input => request.body))
        connection.respond(Reel::Response.new(status, headers, body))
      end
    end
  end

  def stop
    if @server
      @server.terminate
      @server = nil
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reel-eye-0.3.1 lib/eye/http.rb