Sha256: 17f8cc86750d0dacfd3d1bb886a69bb8df3d0d96620aa9574bfeaa555f603e36

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

require 'net/http'

# This is only needed till I get ActiveResource going through rack-test
class TestServer
  @pid_file = "./rest-assured.pid"

  def self.start(opts = {})
    @server_port = opts[:port] || 9876

    print 'Starting TestServer server... '

    p = Process.fork do
      if get_pid
        print "\nPrevious TestServer instance appears to be running. Will be using it."
      else
        Process.exec("bundle exec rest-assured -p #{@server_port}")
      end
    end

    Process.detach(p)
    puts 'Done.'
  end

  def self.stop
    print 'Shutting down TestServer server... '
    Process.kill('TERM', get_pid.to_i) rescue puts( "Failed to kill TestServer server: #{$!}" )
    puts 'Done.'
  end

  def self.server_address
    "http://localhost:#{@server_port}"
  end

  def self.up?
    Net::HTTP.new('localhost', @server_port).head('/')
    true
  rescue Errno::ECONNREFUSED
    false
  end

  private

    def self.get_pid
      `ps -eo pid,args`.split("\n").grep( /rest-assured -p #{@server_port}/ ).map{|p| p.split.first }.first
    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rest-assured-0.2.0.rc5 features/support/test-server.rb
rest-assured-0.2.0.rc4 features/support/test-server.rb
rest-assured-0.2.0.rc3 features/support/test-server.rb
rest-assured-0.2.0.rc2 features/support/test-server.rb
rest-assured-0.2.0.rc1 features/support/test-server.rb