proxy_rb 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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