proxy_rb 0.4.0 → 0.5.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -4
  3. data/Gemfile +2 -2
  4. data/History.md +17 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +15 -4
  7. data/Rakefile +8 -2
  8. data/exe/proxy_rb +8 -0
  9. data/fixtures/empty/README.md +18 -0
  10. data/fixtures/empty/Rakefile +10 -0
  11. data/lib/proxy_rb/announcer.rb +162 -0
  12. data/lib/proxy_rb/{rspec/helpers → api}/.keep +0 -0
  13. data/lib/proxy_rb/api/core.rb +25 -0
  14. data/lib/proxy_rb/api/http_proxy.rb +94 -0
  15. data/lib/proxy_rb/api/passwords.rb +26 -0
  16. data/lib/proxy_rb/api.rb +19 -0
  17. data/lib/proxy_rb/basic_configuration/{in_config_wrapper.rb → in_configuration_wrapper.rb} +1 -1
  18. data/lib/proxy_rb/basic_configuration.rb +2 -2
  19. data/lib/proxy_rb/cli.rb +27 -0
  20. data/lib/proxy_rb/colorizer.rb +113 -0
  21. data/lib/proxy_rb/configuration.rb +1 -1
  22. data/lib/proxy_rb/configuration_wrapper.rb +59 -0
  23. data/lib/proxy_rb/console/help.rb +29 -0
  24. data/lib/proxy_rb/console.rb +62 -0
  25. data/lib/proxy_rb/credentials.rb +11 -0
  26. data/lib/proxy_rb/drivers/poltergeist_driver.rb +8 -2
  27. data/lib/proxy_rb/drivers/selenium_driver.rb +7 -1
  28. data/lib/proxy_rb/drivers/webkit_driver.rb +10 -1
  29. data/lib/proxy_rb/errors.rb +12 -0
  30. data/lib/proxy_rb/event_bus/name_resolver.rb +163 -0
  31. data/lib/proxy_rb/event_bus.rb +60 -0
  32. data/lib/proxy_rb/events.rb +34 -0
  33. data/lib/proxy_rb/http_proxy.rb +8 -0
  34. data/lib/proxy_rb/initializer.rb +132 -0
  35. data/lib/proxy_rb/{rspec/matchers → matchers}/.keep +0 -0
  36. data/lib/proxy_rb/matchers/be_forbidden.rb +14 -0
  37. data/lib/proxy_rb/matchers/be_successful.rb +14 -0
  38. data/lib/proxy_rb/matchers/have_mime_type.rb +9 -0
  39. data/lib/proxy_rb/password_fetchers/basic_password_fetcher.rb +25 -0
  40. data/lib/proxy_rb/password_fetchers/chaining_password_fetcher.rb +54 -0
  41. data/lib/proxy_rb/password_fetchers/environment_password_fetcher.rb +7 -1
  42. data/lib/proxy_rb/password_fetchers/vault_password_fetcher.rb +7 -1
  43. data/lib/proxy_rb/proxy_url.rb +8 -0
  44. data/lib/proxy_rb/request.rb +5 -21
  45. data/lib/proxy_rb/resource.rb +11 -7
  46. data/lib/proxy_rb/response.rb +5 -13
  47. data/lib/proxy_rb/rspec.rb +32 -13
  48. data/lib/proxy_rb/runtime.rb +49 -0
  49. data/lib/proxy_rb/setup.rb +60 -0
  50. data/lib/proxy_rb/version.rb +1 -1
  51. data/proxy_rb.gemspec +2 -2
  52. metadata +38 -29
  53. data/lib/proxy_rb/rspec/helpers/http_proxy.rb +0 -83
  54. data/lib/proxy_rb/rspec/helpers/passwords.rb +0 -29
  55. data/lib/proxy_rb/rspec/shared_contexts/.keep +0 -0
  56. data/lib/proxy_rb/rspec/shared_examples/.keep +0 -0
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.0
4
+ version: 0.5.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-03-03 00:00:00.000000000 Z
11
+ date: 2016-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.9'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: capybara
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -112,20 +98,21 @@ dependencies:
112
98
  name: rspec
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: '3.3'
118
104
  type: :runtime
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0'
110
+ version: '3.3'
125
111
  description:
126
112
  email:
127
113
  - dev@fedux.org
128
- executables: []
114
+ executables:
115
+ - proxy_rb
129
116
  extensions: []
130
117
  extra_rdoc_files: []
131
118
  files:
@@ -138,12 +125,17 @@ files:
138
125
  - ".yardopts"
139
126
  - CONTRIBUTING.md
140
127
  - Gemfile
128
+ - History.md
129
+ - LICENSE.txt
141
130
  - README.md
142
131
  - Rakefile
143
132
  - bin/bootstrap
144
133
  - bin/console
145
134
  - bin/test
146
135
  - cucumber.yml
136
+ - exe/proxy_rb
137
+ - fixtures/empty/README.md
138
+ - fixtures/empty/Rakefile
147
139
  - fixtures/proxy-config/.rspec
148
140
  - fixtures/proxy-config/README.md
149
141
  - fixtures/proxy-config/Rakefile
@@ -151,22 +143,42 @@ files:
151
143
  - fixtures/proxy-config/spec/support/aruba.rb
152
144
  - fixtures/proxy-config/spec/support/proxy_rb.rb
153
145
  - lib/proxy_rb.rb
146
+ - lib/proxy_rb/announcer.rb
147
+ - lib/proxy_rb/api.rb
148
+ - lib/proxy_rb/api/.keep
149
+ - lib/proxy_rb/api/core.rb
150
+ - lib/proxy_rb/api/http_proxy.rb
151
+ - lib/proxy_rb/api/passwords.rb
154
152
  - lib/proxy_rb/basic_configuration.rb
155
- - lib/proxy_rb/basic_configuration/in_config_wrapper.rb
153
+ - lib/proxy_rb/basic_configuration/in_configuration_wrapper.rb
156
154
  - lib/proxy_rb/basic_configuration/option.rb
155
+ - lib/proxy_rb/cli.rb
156
+ - lib/proxy_rb/colorizer.rb
157
157
  - lib/proxy_rb/configuration.rb
158
+ - lib/proxy_rb/configuration_wrapper.rb
159
+ - lib/proxy_rb/console.rb
160
+ - lib/proxy_rb/console/help.rb
158
161
  - lib/proxy_rb/credentials.rb
159
162
  - lib/proxy_rb/drivers/basic_driver.rb
160
163
  - lib/proxy_rb/drivers/poltergeist_driver.rb
161
164
  - lib/proxy_rb/drivers/selenium_driver.rb
162
165
  - lib/proxy_rb/drivers/webkit_driver.rb
163
166
  - lib/proxy_rb/errors.rb
167
+ - lib/proxy_rb/event_bus.rb
168
+ - lib/proxy_rb/event_bus/name_resolver.rb
169
+ - lib/proxy_rb/events.rb
164
170
  - lib/proxy_rb/http_downloader.rb
165
171
  - lib/proxy_rb/http_proxy.rb
172
+ - lib/proxy_rb/initializer.rb
166
173
  - lib/proxy_rb/main.rb
174
+ - lib/proxy_rb/matchers/.keep
175
+ - lib/proxy_rb/matchers/be_forbidden.rb
176
+ - lib/proxy_rb/matchers/be_successful.rb
177
+ - lib/proxy_rb/matchers/have_mime_type.rb
167
178
  - lib/proxy_rb/no_proxy.rb
168
179
  - lib/proxy_rb/password_fetchers.rb
169
180
  - lib/proxy_rb/password_fetchers/basic_password_fetcher.rb
181
+ - lib/proxy_rb/password_fetchers/chaining_password_fetcher.rb
170
182
  - lib/proxy_rb/password_fetchers/environment_password_fetcher.rb
171
183
  - lib/proxy_rb/password_fetchers/vault_password_fetcher.rb
172
184
  - lib/proxy_rb/proxy_url.rb
@@ -175,19 +187,16 @@ files:
175
187
  - lib/proxy_rb/resource.rb
176
188
  - lib/proxy_rb/response.rb
177
189
  - lib/proxy_rb/rspec.rb
178
- - lib/proxy_rb/rspec/helpers/.keep
179
- - lib/proxy_rb/rspec/helpers/http_proxy.rb
180
- - lib/proxy_rb/rspec/helpers/passwords.rb
181
- - lib/proxy_rb/rspec/matchers/.keep
182
- - lib/proxy_rb/rspec/shared_contexts/.keep
183
- - lib/proxy_rb/rspec/shared_examples/.keep
190
+ - lib/proxy_rb/runtime.rb
191
+ - lib/proxy_rb/setup.rb
184
192
  - lib/proxy_rb/user_passwords.rb
185
193
  - lib/proxy_rb/user_passwords/environment_user_password.rb
186
194
  - lib/proxy_rb/user_passwords/vault_user_password.rb
187
195
  - lib/proxy_rb/version.rb
188
196
  - proxy_rb.gemspec
189
197
  homepage: https://github.com/fedux-org/proxy_rb
190
- licenses: []
198
+ licenses:
199
+ - MIT
191
200
  metadata: {}
192
201
  post_install_message:
193
202
  rdoc_options: []
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'proxy_rb'
4
- require 'proxy_rb/resource'
5
- require 'proxy_rb/http_downloader'
6
- require 'proxy_rb/http_proxy'
7
- require 'proxy_rb/request'
8
- require 'proxy_rb/response'
9
-
10
- # Main Module
11
- module ProxyRb
12
- # Main Module
13
- module Rspec
14
- # Helpers
15
- module Helpers
16
- # Non includable internal helper methods
17
- #
18
- # Not for use by normal users
19
- module NonIncludes
20
- class << self
21
- def clear_environment
22
- %w(
23
- http_proxy
24
- https_proxy
25
- HTTP_PROXY
26
- HTTPS_PROXY
27
- ).each { |v| ENV.delete v }
28
- end
29
-
30
- def configure_driver
31
- ProxyRb.config.driver.configure_driver
32
- end
33
-
34
- def register_capybara_driver_for_proxy(proxy)
35
- ProxyRb.config.driver.register proxy
36
- end
37
- end
38
- end
39
-
40
- # For http proxy
41
- module HttpProxy
42
- include ::Capybara::DSL
43
-
44
- # The proxy based on subject
45
- def proxy
46
- ProxyRb::HttpProxy.new(ProxyUrlParser.new(subject))
47
- end
48
-
49
- # Visit an URL
50
- #
51
- # @param [String] url
52
- def visit(url)
53
- resource = Resource.new(url)
54
-
55
- NonIncludes.clear_environment
56
- NonIncludes.configure_driver
57
- NonIncludes.register_capybara_driver_for_proxy(proxy)
58
-
59
- begin
60
- super(resource.to_url)
61
- rescue *ProxyRb.config.driver.rescuable_errors
62
- raise ProxyRb::UrlTimeoutError, "Failed to fetch #{resource.to_url}: Timeout occured."
63
- end
64
- end
65
-
66
- # !@method download
67
- #
68
- # @see #visit
69
- alias download visit
70
-
71
- # Get access to the request made
72
- def request
73
- Request.new(page)
74
- end
75
-
76
- # Get access to the response get
77
- def response
78
- Response.new(page)
79
- end
80
- end
81
- end
82
- end
83
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'contracts'
3
-
4
- # ProxyRb
5
- module ProxyRb
6
- # Rspec
7
- module Rspec
8
- # Helpers
9
- module Helpers
10
- # Helpers to access passwords
11
- module Passwords
12
- include Contracts::Core
13
- include Contracts::Builtin
14
-
15
- Contract Or[String, Symbol] => Maybe[String]
16
- # Get password for user
17
- #
18
- # @param [String] user_name
19
- # The user name
20
- #
21
- # @return [String]
22
- # The password
23
- def password(user_name)
24
- ProxyRb.config.password_fetcher.call(user_name.to_s)
25
- end
26
- end
27
- end
28
- end
29
- end
File without changes
File without changes