pacto-server 0.4.0.rc2 → 0.4.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pacto/server.rb +43 -0
  3. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48d92c082f19c254b64fa04ff72916ca26006864
4
- data.tar.gz: dfdbd70436fe3d864b3a6743fdf150be10964e75
3
+ metadata.gz: ee9b0cb8ca03fdcf5fc4f6e0f27b5f2546e10258
4
+ data.tar.gz: bcbc664cbcaed9d0514ecc53be58586566e1e275
5
5
  SHA512:
6
- metadata.gz: 633eeeacc1f2b780fe66504de21391427baea0470d67615b19299d1291aee6483158bd515f0bbbf83eb4b23ec8ac19f3fbbedce84ffb463a8ca4465acd4fcf94
7
- data.tar.gz: 596c074835077add5d5cbc4988730e7e821fe6bcce5b09a0180cc265ebba59b95216fb49456ed336a4c9f303666512c00f19181c7d0b95facf4f9783d2800cae
6
+ metadata.gz: 28fc2b80fa99fc5b7be0b50034be9239a278a4e8dcf0613df61a7adcd20ce7d7feb8bdc9440e0a4bafeb9d6ef46e0e2e5c065cede9542731a20f3eeb74102598
7
+ data.tar.gz: c35e4da19d3a7b7ef20b13491ce79667370ce1cf5e0ae395e2e8e063bc5322a12c3bb5da20d9af8cc9b8e637aa0058b652e9d34075ffbbaf74a84e4add3bcd44
@@ -0,0 +1,43 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'reel'
3
+ require 'pacto'
4
+ require_relative 'server/settings'
5
+ require_relative 'server/proxy'
6
+
7
+ module Pacto
8
+ module Server
9
+ class HTTP < Reel::Server::HTTP
10
+ attr_reader :settings, :logger
11
+ include Proxy
12
+
13
+ def initialize(host = '127.0.0.1', port = 3000, options = {})
14
+ @logger = options[:pacto_logger] || Pacto.configuration.logger
15
+ @settings = Settings::OptionHandler.new(port, @logger).handle(options)
16
+ logger.info "Pacto Server starting on #{host}:#{port}"
17
+ super(host, port, spy: options[:spy], &method(:on_connection))
18
+ end
19
+
20
+ def on_connection(connection)
21
+ # Support multiple keep-alive requests per connection
22
+ connection.each_request do |reel_request|
23
+ begin
24
+ pacto_request = # exclusive do
25
+ Pacto::PactoRequest.new(
26
+ headers: reel_request.headers, body: reel_request.read,
27
+ method: reel_request.method, uri: Addressable::URI.heuristic_parse(reel_request.uri)
28
+ )
29
+ # end
30
+
31
+ pacto_response = proxy_request(pacto_request)
32
+ reel_response = ::Reel::Response.new(pacto_response.status, pacto_response.headers, pacto_response.body)
33
+ reel_request.respond(reel_response)
34
+ rescue WebMock::NetConnectNotAllowedError, Faraday::ConnectionFailed => e
35
+ reel_request.respond 502, e.message
36
+ rescue => e
37
+ reel_request.respond 500, Pacto::Errors.formatted_trace(e)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacto-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.rc2
4
+ version: 0.4.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ThoughtWorks
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-24 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pacto
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.0.rc2
19
+ version: 0.4.0.rc3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.0.rc2
26
+ version: 0.4.0.rc3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: reel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -49,6 +49,7 @@ extensions: []
49
49
  extra_rdoc_files: []
50
50
  files:
51
51
  - bin/pacto-server
52
+ - lib/pacto/server.rb
52
53
  - lib/pacto/server/cli.rb
53
54
  - lib/pacto/server/config.rb
54
55
  - lib/pacto/server/proxy.rb