proxy_rb 0.2.1 → 0.3.0
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 +4 -4
- data/.travis.yml +4 -0
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +2 -0
- data/README.md +44 -69
- data/Rakefile +1 -1
- data/lib/proxy_rb/configuration.rb +3 -0
- data/lib/proxy_rb/credentials.rb +1 -7
- data/lib/proxy_rb/drivers/basic_driver.rb +19 -0
- data/lib/proxy_rb/drivers/poltergeist_driver.rb +52 -0
- data/lib/proxy_rb/drivers/webkit_driver.rb +56 -0
- data/lib/proxy_rb/http_proxy.rb +19 -25
- data/lib/proxy_rb/no_proxy.rb +3 -2
- data/lib/proxy_rb/proxy_url.rb +11 -2
- data/lib/proxy_rb/request.rb +7 -3
- data/lib/proxy_rb/rspec/helpers/http_proxy.rb +7 -14
- data/lib/proxy_rb/version.rb +1 -1
- data/proxy_rb.gemspec +1 -1
- metadata +6 -4
- data/fixtures/proxy-config/bin/http_server +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8f2ff7a132c447ec0c846e16e286c898a1221c5
|
4
|
+
data.tar.gz: f5f80b116193df7695e0b5f0e52c614f889b04bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f837422215bb89b1e17be474ad595afaaa79173b8b3eca6b06b50f62c35229e0d2e841c14187926269660a74a7d3b251faf4729586b7d6a2c8c22957e6297e1c
|
7
|
+
data.tar.gz: ed4e7b774c23faa1738f3ed37df85caa9b3311ff5b9b745a019021bdee1176cbc2c11c2def73c0c07e7aac769810e3467026ff888bb6a99daf8eabf1a6f02bd5
|
data/.travis.yml
CHANGED
data/CONTRIBUTING.md
CHANGED
@@ -17,7 +17,7 @@ Here are some ways *you* can contribute:
|
|
17
17
|
* by closing [issues][]
|
18
18
|
* by reviewing patches
|
19
19
|
|
20
|
-
[issues]: https://github.com/fedux-org/
|
20
|
+
[issues]: https://github.com/fedux-org/proxy_rb/issues
|
21
21
|
|
22
22
|
## Submitting an Issue
|
23
23
|
|
@@ -25,7 +25,7 @@ We use the [GitHub issue tracker][issues] to track bugs and features. Before
|
|
25
25
|
submitting a bug report or feature request, check to make sure it hasn't
|
26
26
|
already been submitted.
|
27
27
|
|
28
|
-
When submitting a bug report, please include a [Gist][] that includes a *stack
|
28
|
+
When submitting a bug report, please include a [Gist][gist] that includes a *stack
|
29
29
|
trace* and any details that may be necessary to reproduce the bug, including
|
30
30
|
your *gem version*, *Ruby version*, and *operating system*. Ideally, a bug report
|
31
31
|
should include a pull request with failing specs.
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -20,82 +20,59 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
###
|
23
|
+
### Getting started
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
RSpec.describe 'Infrastructure A' do
|
29
|
-
describe 'proxy1' do
|
30
|
-
subject { 'proxy1.example.com' }
|
31
|
-
|
32
|
-
context 'request resource via http' do
|
33
|
-
let(:resource) { Resource.new('http://example.com') }
|
34
|
-
|
35
|
-
context 'when url is readable' do
|
36
|
-
it { expect(proxy).to forward_url(resource) }
|
37
|
-
end
|
38
|
-
|
39
|
-
context 'when website needs to be browsed' do
|
40
|
-
before(:each) { download(resource) }
|
41
|
-
it { expect(resource).to have_content('Example') }
|
42
|
-
end
|
25
|
+
The following steps are only a suggestion. If you normally use a different
|
26
|
+
workflow, this is ok. Just make sure, that the `proxy_rb/rspec`-file is
|
27
|
+
required by `spec/spec_helper.rb` directly or indirectly.
|
43
28
|
|
44
|
-
|
45
|
-
let(:user) { ProxyUser.new(name: 'user1') }
|
46
|
-
before(:each) { download(resource) }
|
29
|
+
*Initialize RSpec*
|
47
30
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
context 'when upload uses post http method' do
|
52
|
-
let(:data) { 'data' }
|
53
|
-
before(:each) { upload(resource, data) }
|
31
|
+
~~~bash
|
32
|
+
bundle exec rspec --init
|
33
|
+
~~~
|
54
34
|
|
55
|
-
|
56
|
-
end
|
35
|
+
*Modify "spec/spec_helper.rb"*
|
57
36
|
|
58
|
-
|
59
|
-
let(:data) { 'data' }
|
60
|
-
before(:each) { upload(resource, data, method: 'put') }
|
37
|
+
Add the following lines.
|
61
38
|
|
62
|
-
|
63
|
-
|
64
|
-
|
39
|
+
~~~ruby
|
40
|
+
# Loading support files
|
41
|
+
Dir.glob(::File.expand_path('../support/*.rb', __FILE__)).each { |f| require_relative f }
|
42
|
+
Dir.glob(::File.expand_path('../support/**/*.rb', __FILE__)).each { |f| require_relative f }
|
43
|
+
~~~
|
65
44
|
|
66
|
-
|
67
|
-
let(:resource) { Resource.new('https://example.com') }
|
68
|
-
end
|
45
|
+
*Load library*
|
69
46
|
|
70
|
-
|
71
|
-
let(:resource) { Resource.new('ftp://example.com/file.txt') }
|
47
|
+
Create a file named `spec/support/proxy_rb.rb`.
|
72
48
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
end
|
49
|
+
~~~ruby
|
50
|
+
require 'proxy_rb/rspec'
|
51
|
+
~~~
|
77
52
|
|
78
|
-
|
79
|
-
it { expect(proxy).to forward_url(resource) }
|
80
|
-
end
|
53
|
+
*Create first Tests*
|
81
54
|
|
82
|
-
|
83
|
-
let(:user) { ProxyUser.new(name: 'user1') }
|
84
|
-
before(:each) { download(resource) }
|
55
|
+
Create a file named `spec/test_spec.rb`.
|
85
56
|
|
86
|
-
|
87
|
-
|
57
|
+
~~~ruby
|
58
|
+
require 'spec_helper'
|
88
59
|
|
89
|
-
|
90
|
-
|
91
|
-
|
60
|
+
RSpec.describe 'My Proxy' do
|
61
|
+
describe 'Production' do
|
62
|
+
subject { 'http://localhost:8080' }
|
92
63
|
|
93
|
-
|
94
|
-
|
64
|
+
before :each do
|
65
|
+
visit 'http://example.com'
|
95
66
|
end
|
67
|
+
|
68
|
+
it { expect(request).to be_successful }
|
96
69
|
end
|
97
70
|
end
|
98
|
-
|
71
|
+
~~~
|
72
|
+
|
73
|
+
### Getting on with "proxy_rb"
|
74
|
+
|
75
|
+
Please have a look at our "feature"-files found [here](features/).
|
99
76
|
|
100
77
|
### Authentication
|
101
78
|
|
@@ -105,6 +82,12 @@ Please have a look at
|
|
105
82
|
["features/authentication.feature"](features/authentication.feature) for
|
106
83
|
detailed information.
|
107
84
|
|
85
|
+
### Driver
|
86
|
+
|
87
|
+
You can choose between two drivers to sent your requests: "Poltergeist" and
|
88
|
+
"Webkit". Please have a look at
|
89
|
+
["features/drivers.feature"](features/drivers.feature) for detailed
|
90
|
+
information.
|
108
91
|
|
109
92
|
## Development
|
110
93
|
|
@@ -130,8 +113,8 @@ export PATH=~/bin:$PATH
|
|
130
113
|
|
131
114
|
### Scripts
|
132
115
|
|
133
|
-
After checking out the repo, run `
|
134
|
-
Then, run `
|
116
|
+
After checking out the repo, run `bin/bootstrap` to install dependencies.
|
117
|
+
Then, run `bin/console` for an interactive prompt that will allow you to
|
135
118
|
experiment.
|
136
119
|
|
137
120
|
To install this gem onto your local machine, run `bundle exec rake gem:install`. To
|
@@ -139,11 +122,3 @@ release a new version, update the version number in `version.rb`, and then run
|
|
139
122
|
`bundle exec rake gem:release` to create a git tag for the version, push git
|
140
123
|
commits and tags, and push the `.gem` file to
|
141
124
|
[rubygems.org](https://rubygems.org).
|
142
|
-
|
143
|
-
## Contributing
|
144
|
-
|
145
|
-
1. Fork it ( https://github.com/[my-github-username]/proxy_rb/fork )
|
146
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
147
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
148
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
149
|
-
5. Create a new Pull Request
|
data/Rakefile
CHANGED
@@ -8,6 +8,8 @@ require 'proxy_rb/basic_configuration/in_config_wrapper'
|
|
8
8
|
require 'proxy_rb/password_fetchers/basic_password_fetcher'
|
9
9
|
require 'proxy_rb/password_fetchers/environment_password_fetcher'
|
10
10
|
|
11
|
+
require 'proxy_rb/drivers/webkit_driver'
|
12
|
+
|
11
13
|
# ProxyRb
|
12
14
|
module ProxyRb
|
13
15
|
# ProxyRb Configuration
|
@@ -15,6 +17,7 @@ module ProxyRb
|
|
15
17
|
# This defines the configuration options of proxy_rb
|
16
18
|
class Configuration < BasicConfiguration
|
17
19
|
option_accessor :password_fetcher, contract: { PasswordFetchers::BasicPasswordFetcher => PasswordFetchers::BasicPasswordFetcher }, default: ProxyRb::PasswordFetchers::EnvironmentPasswordFetcher.new(prefix: 'SECRET')
|
20
|
+
option_accessor :driver, contract: { Drivers::BasicDriver => Drivers::BasicDriver }, default: ProxyRb::Drivers::WebkitDriver.new
|
18
21
|
end
|
19
22
|
end
|
20
23
|
|
data/lib/proxy_rb/credentials.rb
CHANGED
@@ -5,13 +5,7 @@ require 'shellwords'
|
|
5
5
|
module ProxyRb
|
6
6
|
# Hold proxy credentials
|
7
7
|
class Credentials
|
8
|
-
|
9
|
-
|
10
|
-
attr_reader :password
|
11
|
-
|
12
|
-
public
|
13
|
-
|
14
|
-
attr_reader :user_name
|
8
|
+
attr_reader :user_name, :password
|
15
9
|
|
16
10
|
# @param [String] user_name
|
17
11
|
# The user name to use for authentication against proxy
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# ProxyRb
|
3
|
+
module ProxyRb
|
4
|
+
# Drivers
|
5
|
+
module Drivers
|
6
|
+
# Basic Driver
|
7
|
+
class BasicDriver
|
8
|
+
# Configure driver
|
9
|
+
def configure_driver
|
10
|
+
::Capybara.run_server = false
|
11
|
+
end
|
12
|
+
|
13
|
+
# Register proxy
|
14
|
+
def register(_proxy)
|
15
|
+
raise NoMethodError, 'You need to implement this in your driver'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'proxy_rb/drivers/basic_driver'
|
3
|
+
require 'capybara'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'capybara/poltergeist'
|
7
|
+
rescue LoadError
|
8
|
+
ProxyRb.logger.error %(Error loading `poltergeist`-gem. Please add `gem poltergeist` to your `Gemfile`)
|
9
|
+
exit 1
|
10
|
+
end
|
11
|
+
|
12
|
+
# ProxyRb
|
13
|
+
module ProxyRb
|
14
|
+
# Drivers
|
15
|
+
module Drivers
|
16
|
+
# Driver for Poltergeist
|
17
|
+
class PoltergeistDriver < BasicDriver
|
18
|
+
# Register proxy
|
19
|
+
#
|
20
|
+
# @param [HttpProxy] proxy
|
21
|
+
# The HTTP proxy which should be used for fetching content
|
22
|
+
def register(proxy)
|
23
|
+
if proxy.empty?
|
24
|
+
::Capybara.current_driver = :poltergeist
|
25
|
+
return
|
26
|
+
end
|
27
|
+
|
28
|
+
cli_parameters = []
|
29
|
+
cli_parameters << "--proxy=#{proxy.url}" unless proxy.url.empty?
|
30
|
+
cli_parameters << "--proxy-auth=#{proxy.credentials}" unless proxy.credentials.empty?
|
31
|
+
|
32
|
+
options = {
|
33
|
+
phantomjs_options: cli_parameters,
|
34
|
+
js_errors: false,
|
35
|
+
phantomjs_logger: $stderr
|
36
|
+
}
|
37
|
+
|
38
|
+
unless ::Capybara.drivers.key? proxy.to_ref
|
39
|
+
::Capybara.register_driver proxy.to_ref do |app|
|
40
|
+
::Capybara::Poltergeist::Driver.new(app, options)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
::Capybara.current_driver = proxy.to_ref
|
45
|
+
end
|
46
|
+
|
47
|
+
def rescuable_errors
|
48
|
+
[::Capybara::Poltergeist::TimeoutError]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'proxy_rb/drivers/basic_driver'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'capybara/webkit'
|
6
|
+
rescue LoadError
|
7
|
+
ProxyRb.logger.error %(Error loading `capybara-webkit`-gem. Please add `gem capybara-webkit` to your `Gemfile`)
|
8
|
+
exit 1
|
9
|
+
end
|
10
|
+
|
11
|
+
# rubocop:disable Style/SymbolProc
|
12
|
+
::Capybara::Webkit.configure do |config|
|
13
|
+
config.allow_unknown_urls
|
14
|
+
end
|
15
|
+
# rubocop:enable Style/SymbolProc
|
16
|
+
|
17
|
+
# ProxyRb
|
18
|
+
module ProxyRb
|
19
|
+
# Drivers
|
20
|
+
module Drivers
|
21
|
+
# Driver for Capybara-Webkit
|
22
|
+
class WebkitDriver < BasicDriver
|
23
|
+
# Register proxy
|
24
|
+
#
|
25
|
+
# @param [HttpProxy] proxy
|
26
|
+
# The HTTP proxy which should be used for fetching content
|
27
|
+
def register(proxy)
|
28
|
+
if proxy.empty?
|
29
|
+
::Capybara.current_driver = :webkit
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
33
|
+
options = {
|
34
|
+
proxy: {
|
35
|
+
host: proxy.host,
|
36
|
+
port: proxy.port,
|
37
|
+
user: proxy.user,
|
38
|
+
pass: proxy.password
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
unless ::Capybara.drivers.key? proxy.to_ref
|
43
|
+
::Capybara.register_driver proxy.to_ref do |app|
|
44
|
+
::Capybara::Webkit::Driver.new(app, Capybara::Webkit::Configuration.to_hash.merge(options))
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
::Capybara.current_driver = proxy.to_ref
|
49
|
+
end
|
50
|
+
|
51
|
+
def rescuable_errors
|
52
|
+
[::Capybara::Webkit::TimeoutError]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/lib/proxy_rb/http_proxy.rb
CHANGED
@@ -8,45 +8,39 @@ require 'proxy_rb/proxy_url_parser'
|
|
8
8
|
module ProxyRb
|
9
9
|
# Represent proxy
|
10
10
|
class HttpProxy
|
11
|
-
protected
|
12
|
-
|
13
11
|
attr_reader :url, :credentials
|
14
12
|
|
15
|
-
public
|
16
|
-
|
17
13
|
def initialize(parser)
|
18
14
|
@url = parser.proxy_url
|
19
15
|
@credentials = parser.credentials
|
20
16
|
end
|
21
17
|
|
22
|
-
|
23
|
-
|
24
|
-
# @return [Array]
|
25
|
-
# An array of parameters for PhantomJS
|
26
|
-
def to_phantom_js
|
27
|
-
result = []
|
28
|
-
result << "--proxy=#{url}" unless url.empty?
|
29
|
-
result << "--proxy-auth=#{credentials}" unless credentials.empty?
|
30
|
-
|
31
|
-
result
|
18
|
+
def host
|
19
|
+
url.host
|
32
20
|
end
|
33
21
|
|
34
|
-
|
35
|
-
|
36
|
-
# @return [Symbol]
|
37
|
-
# <host>_<port>_<credentials>
|
38
|
-
def to_sym
|
39
|
-
Shellwords.escape(*[host, port, credentials.user_name].compact.join('_')).to_sym
|
22
|
+
def port
|
23
|
+
url.port
|
40
24
|
end
|
41
25
|
|
42
|
-
|
26
|
+
def user
|
27
|
+
credentials.user_name
|
28
|
+
end
|
43
29
|
|
44
|
-
def
|
45
|
-
|
30
|
+
def password
|
31
|
+
credentials.password
|
46
32
|
end
|
47
33
|
|
48
|
-
def
|
49
|
-
|
34
|
+
def empty?
|
35
|
+
host.nil? || host.empty?
|
36
|
+
end
|
37
|
+
|
38
|
+
# Convert to symbol to reference the proxy
|
39
|
+
#
|
40
|
+
# @return [Symbol]
|
41
|
+
# <host>_<port>_<credentials>
|
42
|
+
def to_ref
|
43
|
+
Shellwords.escape(*[host, port, user].compact.join('_')).to_sym
|
50
44
|
end
|
51
45
|
end
|
52
46
|
end
|
data/lib/proxy_rb/no_proxy.rb
CHANGED
data/lib/proxy_rb/proxy_url.rb
CHANGED
@@ -24,7 +24,16 @@ module ProxyRb
|
|
24
24
|
# @return [ProxyUrl]
|
25
25
|
# The parsed url
|
26
26
|
def self.parse(string)
|
27
|
-
|
27
|
+
string = string.to_s
|
28
|
+
string = if string.empty?
|
29
|
+
string
|
30
|
+
elsif string.start_with?('http://')
|
31
|
+
string
|
32
|
+
else
|
33
|
+
'http://' + string
|
34
|
+
end
|
35
|
+
|
36
|
+
new(Addressable::URI.heuristic_parse(string))
|
28
37
|
end
|
29
38
|
|
30
39
|
protected
|
@@ -46,7 +55,7 @@ module ProxyRb
|
|
46
55
|
end
|
47
56
|
|
48
57
|
def to_s
|
49
|
-
return
|
58
|
+
return '' if empty?
|
50
59
|
|
51
60
|
url.to_s
|
52
61
|
end
|
data/lib/proxy_rb/request.rb
CHANGED
@@ -21,9 +21,13 @@ module ProxyRb
|
|
21
21
|
page.status_code.to_s.start_with?('2', '3')
|
22
22
|
end
|
23
23
|
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
24
|
+
# The request is forbidden
|
25
|
+
#
|
26
|
+
# @return [TrueClass, FalseClass]
|
27
|
+
# The result
|
28
|
+
def forbidden?
|
29
|
+
page.status_code == 403
|
30
|
+
end
|
27
31
|
|
28
32
|
# def invalid?
|
29
33
|
# page.status_code == 401
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'capybara/poltergeist'
|
3
2
|
|
4
3
|
require 'proxy_rb'
|
5
4
|
require 'proxy_rb/resource'
|
@@ -28,19 +27,12 @@ module ProxyRb
|
|
28
27
|
).each { |v| ENV.delete v }
|
29
28
|
end
|
30
29
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
js_errors: false,
|
35
|
-
phantomjs_logger: $stderr
|
36
|
-
}
|
37
|
-
|
38
|
-
::Capybara.register_driver proxy.to_sym do |app|
|
39
|
-
::Capybara::Poltergeist::Driver.new(app, options)
|
40
|
-
end
|
30
|
+
def configure_driver
|
31
|
+
ProxyRb.config.driver.configure_driver
|
32
|
+
end
|
41
33
|
|
42
|
-
|
43
|
-
|
34
|
+
def register_capybara_driver_for_proxy(proxy)
|
35
|
+
ProxyRb.config.driver.register proxy
|
44
36
|
end
|
45
37
|
end
|
46
38
|
end
|
@@ -61,11 +53,12 @@ module ProxyRb
|
|
61
53
|
resource = Resource.new(url)
|
62
54
|
|
63
55
|
NonIncludes.clear_environment
|
56
|
+
NonIncludes.configure_driver
|
64
57
|
NonIncludes.register_capybara_driver_for_proxy(proxy)
|
65
58
|
|
66
59
|
begin
|
67
60
|
super(resource.to_url)
|
68
|
-
rescue
|
61
|
+
rescue *ProxyRb.config.driver.rescuable_errors
|
69
62
|
raise ProxyRb::UrlTimeoutError, "Failed to fetch #{resource.to_url}: Timeout occured."
|
70
63
|
end
|
71
64
|
end
|
data/lib/proxy_rb/version.rb
CHANGED
data/proxy_rb.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'capybara'
|
25
|
-
spec.add_runtime_dependency '
|
25
|
+
spec.add_runtime_dependency 'capybara-webkit'
|
26
26
|
|
27
27
|
spec.add_runtime_dependency 'addressable'
|
28
28
|
spec.add_runtime_dependency 'contracts'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: proxy_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Meyer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: capybara-webkit
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -147,7 +147,6 @@ files:
|
|
147
147
|
- fixtures/proxy-config/.rspec
|
148
148
|
- fixtures/proxy-config/README.md
|
149
149
|
- fixtures/proxy-config/Rakefile
|
150
|
-
- fixtures/proxy-config/bin/http_server
|
151
150
|
- fixtures/proxy-config/spec/spec_helper.rb
|
152
151
|
- fixtures/proxy-config/spec/support/aruba.rb
|
153
152
|
- fixtures/proxy-config/spec/support/proxy_rb.rb
|
@@ -157,6 +156,9 @@ files:
|
|
157
156
|
- lib/proxy_rb/basic_configuration/option.rb
|
158
157
|
- lib/proxy_rb/configuration.rb
|
159
158
|
- lib/proxy_rb/credentials.rb
|
159
|
+
- lib/proxy_rb/drivers/basic_driver.rb
|
160
|
+
- lib/proxy_rb/drivers/poltergeist_driver.rb
|
161
|
+
- lib/proxy_rb/drivers/webkit_driver.rb
|
160
162
|
- lib/proxy_rb/errors.rb
|
161
163
|
- lib/proxy_rb/http_downloader.rb
|
162
164
|
- lib/proxy_rb/http_proxy.rb
|