Sha256: 88b8a4924af2aec64229f0450717a07a24b19da1d493b29e286a5405b596480f

Contents?: true

Size: 973 Bytes

Versions: 15

Compression:

Stored size: 973 Bytes

Contents

require 'find_a_port'
require 'thor'
require 'thwait'
require 'pact/consumer'
require 'rack/handler/webrick'

module Pact
  class App < Thor

    desc 'service', "starts a mock service"
    method_option :port, aliases: "-p", desc: "Port on which to run the service"
    method_option :log, aliases: "-l", desc: "File to which to log output"
    method_option :quiet, aliases: "-q", desc: "If true, no admin messages will be shown"

    def service
      service_options = {}
      if options[:log]
        log = File.open(options[:log], 'w')
        log.sync = true
        service_options[:log_file] = log
      end

      port = options[:port] || FindAPort.available_port
      mock_service = Consumer::MockService.new(service_options)
      trap(:INT) { Rack::Handler::WEBrick.shutdown }
      Rack::Handler::WEBrick.run(mock_service, :Port => port, :AccessLog => [])
    end

    private
    def log message
      puts message unless options[:quiet]
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
pact-1.1.0 lib/pact/app.rb
pact-1.1.0.rc5 lib/pact/app.rb
pact-1.1.0.rc4 lib/pact/app.rb
pact-1.1.0.rc3 lib/pact/app.rb
pact-1.0.39 lib/pact/app.rb
pact-1.1.0.rc2 lib/pact/app.rb
pact-1.0.38 lib/pact/app.rb
pact-1.1.0.rc1 lib/pact/app.rb
pact-1.0.37 lib/pact/app.rb
pact-1.0.36 lib/pact/app.rb
pact-1.0.35 lib/pact/app.rb
pact-1.0.34 lib/pact/app.rb
pact-1.0.33 lib/pact/app.rb
pact-1.0.32 lib/pact/app.rb
pact-1.0.31 lib/pact/app.rb