liquid-proxy 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.travis.yml +3 -2
- data/README.markdown +2 -1
- data/lib/liquid-proxy.rb +1 -1
- data/lib/liquid-proxy/version.rb +1 -1
- data/lib/utils/port_explorer.rb +1 -1
- data/spec/api_controller_spec.rb +4 -4
- data/spec/connection_processor_spec.rb +5 -5
- data/spec/connection_spec.rb +1 -1
- data/spec/liquid-proxy_spec.rb +1 -1
- data/spec/request_builder_spec.rb +1 -1
- data/spec/server_relay_spec.rb +2 -2
- data/spec/service_spec.rb +5 -5
- data/spec/subprocess_spec.rb +2 -1
- metadata +38 -29
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 67f7c456ca6d8125571fc4776efd6d0acf4f5885
|
4
|
+
data.tar.gz: 0f9d435dd3d7d1b6d687aae5e40616e2411d69d7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f932ccf657b8bf9f723543706046e4546c2c71162c95491615105d14d3ed18c53b256bdecc06c80f5efe2e458ec1ffd1609dc81f9c7442ba2c8fa1b620e2eb8d
|
7
|
+
data.tar.gz: e4725820b2197d5c301c5fdf9cc9f33beadcdb9cde4718b9969824ab20a9833c1f4e8ca4db143ccce7d1a80f9c608d9376e40c522c137251e3f7591f1c1764ec
|
data/.travis.yml
CHANGED
data/README.markdown
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Liquid Proxy
|
2
2
|
|
3
3
|
[](https://secure.travis-ci.org/artemave/liquid-proxy)
|
4
|
+
[](http://badge.fury.io/rb/liquid-proxy)
|
4
5
|
|
5
6
|
## Overview
|
6
7
|
|
@@ -78,4 +79,4 @@ If you are not using ruby, it is possible to run liquid-proxy as a standalone pr
|
|
78
79
|
|
79
80
|
## Author
|
80
81
|
|
81
|
-
[Artem Avetisyan](https://github.com/artemave)
|
82
|
+
[Artem Avetisyan](https://github.com/artemave)
|
data/lib/liquid-proxy.rb
CHANGED
data/lib/liquid-proxy/version.rb
CHANGED
data/lib/utils/port_explorer.rb
CHANGED
data/spec/api_controller_spec.rb
CHANGED
@@ -22,9 +22,9 @@ describe LiquidProxy::ApiController do
|
|
22
22
|
|
23
23
|
it 'adds headers to inject' do
|
24
24
|
new_headers = {'X_HACK' => 'Boom'}
|
25
|
-
conn.stub(:send_data => nil, :close_connection_after_writing => nil, :parser =>
|
25
|
+
conn.stub(:send_data => nil, :close_connection_after_writing => nil, :parser => double.as_null_object)
|
26
26
|
conn.stub(:body => new_headers.to_json)
|
27
|
-
conn.stub(:headers_to_inject => (headers_to_inject =
|
27
|
+
conn.stub(:headers_to_inject => (headers_to_inject = double))
|
28
28
|
|
29
29
|
headers_to_inject.should_receive(:merge!).with(new_headers)
|
30
30
|
conn.process_api_call
|
@@ -33,7 +33,7 @@ describe LiquidProxy::ApiController do
|
|
33
33
|
it 'clears off headers to inject if api request method is DELETE' do
|
34
34
|
conn.stub(:send_data => nil, :close_connection_after_writing => nil)
|
35
35
|
conn.stub_chain('parser.http_method').and_return('DELETE')
|
36
|
-
conn.stub(:headers_to_inject => (headers_to_inject =
|
36
|
+
conn.stub(:headers_to_inject => (headers_to_inject = double))
|
37
37
|
headers_to_inject.should_receive(:clear)
|
38
38
|
conn.process_api_call
|
39
39
|
end
|
@@ -41,7 +41,7 @@ describe LiquidProxy::ApiController do
|
|
41
41
|
it 'relays back to client' do
|
42
42
|
response = "response_#{Time.now}"
|
43
43
|
HTTPTools::Builder.stub(:response).with(:ok).and_return(response)
|
44
|
-
conn.stub(:headers_to_inject =>
|
44
|
+
conn.stub(:headers_to_inject => double.as_null_object, :parser => double.as_null_object)
|
45
45
|
|
46
46
|
conn.should_receive(:send_data).with(response).ordered
|
47
47
|
conn.should_receive(:close_connection_after_writing).ordered
|
@@ -14,7 +14,7 @@ describe LiquidProxy::ConnectionProcessor do
|
|
14
14
|
|
15
15
|
it 'feeds connection data to parser' do
|
16
16
|
data = 'data'
|
17
|
-
Http::Parser.stub(:new).and_return(parser =
|
17
|
+
Http::Parser.stub(:new).and_return(parser = double)
|
18
18
|
parser.should_receive(:<<).with(data)
|
19
19
|
conn.process_data(data)
|
20
20
|
end
|
@@ -22,11 +22,11 @@ describe LiquidProxy::ConnectionProcessor do
|
|
22
22
|
it 'passes request through' do
|
23
23
|
HEADERS_TO_INJECT = {} unless defined?(HEADERS_TO_INJECT)
|
24
24
|
new_request = "new_request#{Time.now}"
|
25
|
-
parser =
|
25
|
+
parser = double(:headers => {'Host' => 'localhost'})
|
26
26
|
conn.stub(
|
27
|
-
:body => (body =
|
27
|
+
:body => (body = double),
|
28
28
|
:parser => parser,
|
29
|
-
:request_builder => (request_builder =
|
29
|
+
:request_builder => (request_builder = double),
|
30
30
|
:api_call? => false
|
31
31
|
)
|
32
32
|
request_builder.stub(:build).with(conn.parser, conn.body).and_return(new_request)
|
@@ -42,7 +42,7 @@ describe LiquidProxy::ConnectionProcessor do
|
|
42
42
|
|
43
43
|
conn.stub(:server => nil, :relay_to_servers => nil, :api_call? => false)
|
44
44
|
conn.stub(:headers_to_inject => headers_to_inject)
|
45
|
-
conn.parser.stub(:headers).and_return(headers =
|
45
|
+
conn.parser.stub(:headers).and_return(headers = double.as_null_object)
|
46
46
|
|
47
47
|
headers.should_receive(:merge!).with(headers_to_inject)
|
48
48
|
|
data/spec/connection_spec.rb
CHANGED
@@ -5,7 +5,7 @@ require 'liquid-proxy/connection_processor'
|
|
5
5
|
describe LiquidProxy::Connection do
|
6
6
|
context "em-proxy connection setup" do
|
7
7
|
it 'feeds data to connection processor' do
|
8
|
-
conn =
|
8
|
+
conn = double
|
9
9
|
conn.should_receive(:extend).with(LiquidProxy::ConnectionProcessor) # this assert stinks?
|
10
10
|
conn.should_receive(:on_data) do |&block|
|
11
11
|
conn.should_receive(:process_data).with("data")
|
data/spec/liquid-proxy_spec.rb
CHANGED
@@ -4,7 +4,7 @@ require 'liquid-proxy/request_builder'
|
|
4
4
|
describe LiquidProxy::RequestBuilder do
|
5
5
|
it 'builds HTTP request' do
|
6
6
|
body = '_with_body'
|
7
|
-
parser =
|
7
|
+
parser = double(:http_method => 'method', :headers => {'Host' => 'host'}, :request_url => 'url')
|
8
8
|
HTTPTools::Builder.stub(:request).with('method', 'host', 'url', {'Host' => 'host'}).and_return('new_request')
|
9
9
|
|
10
10
|
LiquidProxy::RequestBuilder.new.build(parser, body).should == 'new_request_with_body'
|
data/spec/server_relay_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe LiquidProxy::ServerRelay do
|
|
8
8
|
|
9
9
|
it 'relays to server usging host and port from incoming request' do
|
10
10
|
host, port = 'remotehost', 9876
|
11
|
-
conn.stub(:parser =>
|
11
|
+
conn.stub(:parser => double(:headers => {'Host' => "#{host}:#{port}"}))
|
12
12
|
|
13
13
|
conn.should_receive(:server).with(anything, :host => host, :port => port).ordered
|
14
14
|
conn.should_receive(:relay_to_servers).with('new_request').ordered
|
@@ -17,7 +17,7 @@ describe LiquidProxy::ServerRelay do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it 'uses port 80 by default' do
|
20
|
-
conn.stub(:relay_to_servers => nil, :parser =>
|
20
|
+
conn.stub(:relay_to_servers => nil, :parser => double(:headers => {'Host' => "localhost"}))
|
21
21
|
|
22
22
|
conn.should_receive(:server).with(anything, :host => 'localhost', :port => 80)
|
23
23
|
|
data/spec/service_spec.rb
CHANGED
@@ -16,7 +16,7 @@ describe LiquidProxy::Service do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'does nothing if subprocess already running' do
|
19
|
-
LiquidProxy::Subprocess.should_receive(:new).once.and_return(
|
19
|
+
LiquidProxy::Subprocess.should_receive(:new).once.and_return(double(:alive? => true))
|
20
20
|
|
21
21
|
LiquidProxy::Service.start
|
22
22
|
LiquidProxy::Service.start
|
@@ -25,7 +25,7 @@ describe LiquidProxy::Service do
|
|
25
25
|
|
26
26
|
it 'knows when it is up if subprocess is alive and service port is occupied' do
|
27
27
|
port = 1234
|
28
|
-
LiquidProxy::Subprocess.stub(:new).and_return(sp =
|
28
|
+
LiquidProxy::Subprocess.stub(:new).and_return(sp = double(:alive? => true))
|
29
29
|
|
30
30
|
sp.should_receive(:alive?)
|
31
31
|
Utils::PortExplorer.should_receive(:port_occupied?).with(port).and_return(true)
|
@@ -40,7 +40,7 @@ describe LiquidProxy::Service do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'if subprocess is not alive' do
|
43
|
-
LiquidProxy::Subprocess.stub(:new).and_return(sp =
|
43
|
+
LiquidProxy::Subprocess.stub(:new).and_return(sp = double(:alive? => false))
|
44
44
|
|
45
45
|
sp.should_receive(:alive?)
|
46
46
|
LiquidProxy::Service.start
|
@@ -49,11 +49,11 @@ describe LiquidProxy::Service do
|
|
49
49
|
|
50
50
|
it 'if service port is not occupied' do
|
51
51
|
port = 1234
|
52
|
-
LiquidProxy::Subprocess.stub(:new).and_return(sp =
|
52
|
+
LiquidProxy::Subprocess.stub(:new).and_return(sp = double(:alive? => true))
|
53
53
|
|
54
54
|
sp.should_receive(:alive?)
|
55
55
|
Utils::PortExplorer.should_receive(:port_occupied?).with(port).and_return(false)
|
56
|
-
|
56
|
+
|
57
57
|
LiquidProxy::Service.start(:port => port)
|
58
58
|
LiquidProxy::Service.up?.should == false
|
59
59
|
end
|
data/spec/subprocess_spec.rb
CHANGED
@@ -17,11 +17,12 @@ describe LiquidProxy::Subprocess do
|
|
17
17
|
ChildProcess.should_receive(:build) do |cmd, *params|
|
18
18
|
cmd.should =~ %r{bin/liquid-proxy}
|
19
19
|
params.should == ["1234"]
|
20
|
+
child
|
20
21
|
end
|
21
22
|
LiquidProxy::Subprocess.new(opts)
|
22
23
|
end
|
23
24
|
it 'inherits io and then starts child' do
|
24
|
-
child.should_receive(:io).ordered.and_return(io =
|
25
|
+
child.should_receive(:io).ordered.and_return(io = double)
|
25
26
|
io.should_receive(:inherit!)
|
26
27
|
child.should_receive(:start).ordered
|
27
28
|
LiquidProxy::Subprocess.new
|
metadata
CHANGED
@@ -1,60 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: liquid-proxy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.4
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- artemave
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-05-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: em-proxy
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: http_tools
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: http_parser.rb
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - ">="
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: childprocess
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ">="
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
type: :runtime
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
58
69
|
description:
|
59
70
|
email:
|
60
71
|
- artemave@gmail.com
|
@@ -63,9 +74,9 @@ executables:
|
|
63
74
|
extensions: []
|
64
75
|
extra_rdoc_files: []
|
65
76
|
files:
|
66
|
-
- .gitignore
|
67
|
-
- .rspec
|
68
|
-
- .travis.yml
|
77
|
+
- ".gitignore"
|
78
|
+
- ".rspec"
|
79
|
+
- ".travis.yml"
|
69
80
|
- Gemfile
|
70
81
|
- LICENSE
|
71
82
|
- README.markdown
|
@@ -98,27 +109,26 @@ files:
|
|
98
109
|
- spec/support/reset-singleton.rb
|
99
110
|
homepage: https://github.com/artemave/liquid-proxy
|
100
111
|
licenses: []
|
112
|
+
metadata: {}
|
101
113
|
post_install_message:
|
102
114
|
rdoc_options: []
|
103
115
|
require_paths:
|
104
116
|
- lib
|
105
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
118
|
requirements:
|
108
|
-
- -
|
119
|
+
- - ">="
|
109
120
|
- !ruby/object:Gem::Version
|
110
121
|
version: '0'
|
111
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
-
none: false
|
113
123
|
requirements:
|
114
|
-
- -
|
124
|
+
- - ">="
|
115
125
|
- !ruby/object:Gem::Version
|
116
126
|
version: '0'
|
117
127
|
requirements: []
|
118
128
|
rubyforge_project: liquid-proxy
|
119
|
-
rubygems_version:
|
129
|
+
rubygems_version: 2.5.1
|
120
130
|
signing_key:
|
121
|
-
specification_version:
|
131
|
+
specification_version: 4
|
122
132
|
summary: http proxy with api for modifying requests passing through
|
123
133
|
test_files:
|
124
134
|
- features/change_headers.feature
|
@@ -135,4 +145,3 @@ test_files:
|
|
135
145
|
- spec/spec_helper.rb
|
136
146
|
- spec/subprocess_spec.rb
|
137
147
|
- spec/support/reset-singleton.rb
|
138
|
-
has_rdoc:
|