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.
- checksums.yaml +4 -4
- data/lib/pacto/server.rb +43 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee9b0cb8ca03fdcf5fc4f6e0f27b5f2546e10258
|
4
|
+
data.tar.gz: bcbc664cbcaed9d0514ecc53be58586566e1e275
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28fc2b80fa99fc5b7be0b50034be9239a278a4e8dcf0613df61a7adcd20ce7d7feb8bdc9440e0a4bafeb9d6ef46e0e2e5c065cede9542731a20f3eeb74102598
|
7
|
+
data.tar.gz: c35e4da19d3a7b7ef20b13491ce79667370ce1cf5e0ae395e2e8e063bc5322a12c3bb5da20d9af8cc9b8e637aa0058b652e9d34075ffbbaf74a84e4add3bcd44
|
data/lib/pacto/server.rb
ADDED
@@ -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.
|
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-
|
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.
|
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.
|
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
|