Sha256: bdf3c85a9a923bc10c2ea20af2c349bfffb5c436994549c9d64f7705927c2cbd

Contents?: true

Size: 1.07 KB

Versions: 18

Compression:

Stored size: 1.07 KB

Contents

require 'rack'
require 'logger'
require 'timeout'
require 'net/http'

module SpecHelpers
  class Fake
    def call(env)
      [200, {"Content-Type" => "text/plain"}, ["Hello world!"]]
    end
  end

  def start_fake(app)
    uri   = URI.parse("http://localhost:9292/")
    raise "Server already running on 9292" if uri_active?(uri)

    @fake_pid = Process.fork do
      logger = Logger.new(StringIO.new)
      Rack::Handler::WEBrick.run(app, :Port => 9292, :Logger => logger, :AccessLog => [[logger, WEBrick::AccessLog::COMBINED_LOG_FORMAT]])
    end
    ready = false
    until ready
      if uri_active?(uri)
        ready = true
      else
        print "-" if ENV["VERBOSE"]
      end
    end
  end

  def stop_fake
    Process.kill(9, @fake_pid) if @fake_pid
  end
  
  def reset_libgems(path)
    LibGems.send(:set_home, path)
    LibGems.send(:set_paths, path)
  end

  private

    def uri_active?(uri)
      begin
        timeout(1) do
          Net::HTTP.get_response(uri)
        end
        true
      rescue Timeout::Error, SystemCallError
        false
      end
    end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
bpm-1.0.0 spec/support/fake.rb
bpm-1.0.0.rc.4 spec/support/fake.rb
bpm-1.0.0.rc.3 spec/support/fake.rb
bpm-1.0.0.rc.2 spec/support/fake.rb
bpm-1.0.0.rc.1 spec/support/fake.rb
bpm-1.0.0.beta.13 spec/support/fake.rb
bpm-1.0.0.beta.12 spec/support/fake.rb
bpm-1.0.0.beta.11 spec/support/fake.rb
bpm-1.0.0.beta.10 spec/support/fake.rb
bpm-1.0.0.beta.9 spec/support/fake.rb
bpm-1.0.0.beta.8 spec/support/fake.rb
bpm-1.0.0.beta.6 spec/support/fake.rb
bpm-1.0.0.beta.5 spec/support/fake.rb
bpm-1.0.0.beta.4 spec/support/fake.rb
bpm-0.1.4 spec/support/fake.rb
bpm-0.1.3 spec/support/fake.rb
bpm-0.1.2 spec/support/fake.rb
bpm-0.1.0 spec/support/fake.rb