faraday 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/LICENSE.md +1 -1
  2. data/README.md +41 -16
  3. data/lib/faraday.rb +1 -1
  4. data/lib/faraday/adapter/em_synchrony.rb +8 -0
  5. data/lib/faraday/adapter/excon.rb +1 -0
  6. data/lib/faraday/adapter/httpclient.rb +14 -3
  7. data/lib/faraday/adapter/net_http.rb +2 -2
  8. data/lib/faraday/adapter/net_http_persistent.rb +2 -1
  9. data/lib/faraday/adapter/patron.rb +8 -2
  10. data/lib/faraday/connection.rb +8 -3
  11. data/lib/faraday/options.rb +9 -0
  12. data/lib/faraday/parameters.rb +54 -38
  13. data/lib/faraday/rack_builder.rb +3 -2
  14. data/lib/faraday/request/retry.rb +9 -3
  15. data/lib/faraday/response.rb +2 -2
  16. data/lib/faraday/utils.rb +13 -1
  17. metadata +61 -124
  18. checksums.yaml +0 -7
  19. data/.document +0 -6
  20. data/CHANGELOG.md +0 -20
  21. data/CONTRIBUTING.md +0 -36
  22. data/Gemfile +0 -25
  23. data/Rakefile +0 -71
  24. data/faraday.gemspec +0 -34
  25. data/script/cached-bundle +0 -46
  26. data/script/console +0 -7
  27. data/script/generate_certs +0 -42
  28. data/script/package +0 -7
  29. data/script/proxy-server +0 -42
  30. data/script/release +0 -17
  31. data/script/s3-put +0 -71
  32. data/script/server +0 -36
  33. data/script/test +0 -172
  34. data/test/adapters/default_test.rb +0 -14
  35. data/test/adapters/em_http_test.rb +0 -20
  36. data/test/adapters/em_synchrony_test.rb +0 -20
  37. data/test/adapters/excon_test.rb +0 -20
  38. data/test/adapters/httpclient_test.rb +0 -21
  39. data/test/adapters/integration.rb +0 -254
  40. data/test/adapters/logger_test.rb +0 -82
  41. data/test/adapters/net_http_persistent_test.rb +0 -20
  42. data/test/adapters/net_http_test.rb +0 -14
  43. data/test/adapters/patron_test.rb +0 -20
  44. data/test/adapters/rack_test.rb +0 -31
  45. data/test/adapters/test_middleware_test.rb +0 -114
  46. data/test/adapters/typhoeus_test.rb +0 -28
  47. data/test/authentication_middleware_test.rb +0 -65
  48. data/test/composite_read_io_test.rb +0 -111
  49. data/test/connection_test.rb +0 -522
  50. data/test/env_test.rb +0 -218
  51. data/test/helper.rb +0 -81
  52. data/test/live_server.rb +0 -67
  53. data/test/middleware/instrumentation_test.rb +0 -88
  54. data/test/middleware/retry_test.rb +0 -177
  55. data/test/middleware_stack_test.rb +0 -173
  56. data/test/multibyte.txt +0 -1
  57. data/test/options_test.rb +0 -252
  58. data/test/parameters_test.rb +0 -64
  59. data/test/request_middleware_test.rb +0 -142
  60. data/test/response_middleware_test.rb +0 -72
  61. data/test/strawberry.rb +0 -2
  62. data/test/utils_test.rb +0 -58
@@ -1,5 +1,4 @@
1
1
  require 'thread'
2
- Faraday.require_libs 'parameters'
3
2
 
4
3
  module Faraday
5
4
  module Utils
@@ -17,6 +16,12 @@ module Faraday
17
16
  self.update(hash || {})
18
17
  end
19
18
 
19
+ # on dup/clone, we need to duplicate @names hash
20
+ def initialize_copy(other)
21
+ super
22
+ @names = other.names.dup
23
+ end
24
+
20
25
  # need to synchronize concurrent writes to the shared KeyMap
21
26
  keymap_mutex = Mutex.new
22
27
 
@@ -81,6 +86,7 @@ module Faraday
81
86
 
82
87
  def replace(other)
83
88
  clear
89
+ @names.clear
84
90
  self.update other
85
91
  self
86
92
  end
@@ -101,6 +107,12 @@ module Faraday
101
107
  end
102
108
  }
103
109
  end
110
+
111
+ protected
112
+
113
+ def names
114
+ @names
115
+ end
104
116
  end
105
117
 
106
118
  # hash with stringified keys
metadata CHANGED
@@ -1,63 +1,55 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: faraday
3
- version: !ruby/object:Gem::Version
4
- version: 0.9.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 63
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 9
9
+ - 2
10
+ version: 0.9.2
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Rick Olson
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2015-01-07 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2015-10-06 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
14
22
  name: multipart-post
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '1.2'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '3'
23
- type: :runtime
24
23
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- requirements:
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
27
  - - ">="
28
- - !ruby/object:Gem::Version
29
- version: '1.2'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '3'
33
- - !ruby/object:Gem::Dependency
34
- name: bundler
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.0'
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '1.0'
28
+ - !ruby/object:Gem::Version
29
+ hash: 11
30
+ segments:
31
+ - 1
32
+ - 2
33
+ version: "1.2"
34
+ - - <
35
+ - !ruby/object:Gem::Version
36
+ hash: 5
37
+ segments:
38
+ - 3
39
+ version: "3"
40
+ type: :runtime
41
+ version_requirements: *id001
47
42
  description:
48
43
  email: technoweenie@gmail.com
49
44
  executables: []
45
+
50
46
  extensions: []
47
+
51
48
  extra_rdoc_files: []
52
- files:
53
- - ".document"
54
- - CHANGELOG.md
55
- - CONTRIBUTING.md
56
- - Gemfile
49
+
50
+ files:
57
51
  - LICENSE.md
58
52
  - README.md
59
- - Rakefile
60
- - faraday.gemspec
61
53
  - lib/faraday.rb
62
54
  - lib/faraday/adapter.rb
63
55
  - lib/faraday/adapter/em_http.rb
@@ -92,94 +84,39 @@ files:
92
84
  - lib/faraday/response/raise_error.rb
93
85
  - lib/faraday/upload_io.rb
94
86
  - lib/faraday/utils.rb
95
- - script/cached-bundle
96
- - script/console
97
- - script/generate_certs
98
- - script/package
99
- - script/proxy-server
100
- - script/release
101
- - script/s3-put
102
- - script/server
103
- - script/test
104
- - test/adapters/default_test.rb
105
- - test/adapters/em_http_test.rb
106
- - test/adapters/em_synchrony_test.rb
107
- - test/adapters/excon_test.rb
108
- - test/adapters/httpclient_test.rb
109
- - test/adapters/integration.rb
110
- - test/adapters/logger_test.rb
111
- - test/adapters/net_http_persistent_test.rb
112
- - test/adapters/net_http_test.rb
113
- - test/adapters/patron_test.rb
114
- - test/adapters/rack_test.rb
115
- - test/adapters/test_middleware_test.rb
116
- - test/adapters/typhoeus_test.rb
117
- - test/authentication_middleware_test.rb
118
- - test/composite_read_io_test.rb
119
- - test/connection_test.rb
120
- - test/env_test.rb
121
- - test/helper.rb
122
- - test/live_server.rb
123
- - test/middleware/instrumentation_test.rb
124
- - test/middleware/retry_test.rb
125
- - test/middleware_stack_test.rb
126
- - test/multibyte.txt
127
- - test/options_test.rb
128
- - test/parameters_test.rb
129
- - test/request_middleware_test.rb
130
- - test/response_middleware_test.rb
131
- - test/strawberry.rb
132
- - test/utils_test.rb
87
+ has_rdoc: true
133
88
  homepage: https://github.com/lostisland/faraday
134
- licenses:
89
+ licenses:
135
90
  - MIT
136
- metadata: {}
137
91
  post_install_message:
138
92
  rdoc_options: []
139
- require_paths:
93
+
94
+ require_paths:
140
95
  - lib
141
- required_ruby_version: !ruby/object:Gem::Requirement
142
- requirements:
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
143
99
  - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- required_rubygems_version: !ruby/object:Gem::Requirement
147
- requirements:
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
148
108
  - - ">="
149
- - !ruby/object:Gem::Version
150
- version: 1.3.5
109
+ - !ruby/object:Gem::Version
110
+ hash: 3
111
+ segments:
112
+ - 0
113
+ version: "0"
151
114
  requirements: []
115
+
152
116
  rubyforge_project:
153
- rubygems_version: 2.2.2
117
+ rubygems_version: 1.6.2
154
118
  signing_key:
155
- specification_version: 2
119
+ specification_version: 3
156
120
  summary: HTTP/REST API client library.
157
- test_files:
158
- - test/adapters/default_test.rb
159
- - test/adapters/em_http_test.rb
160
- - test/adapters/em_synchrony_test.rb
161
- - test/adapters/excon_test.rb
162
- - test/adapters/httpclient_test.rb
163
- - test/adapters/integration.rb
164
- - test/adapters/logger_test.rb
165
- - test/adapters/net_http_persistent_test.rb
166
- - test/adapters/net_http_test.rb
167
- - test/adapters/patron_test.rb
168
- - test/adapters/rack_test.rb
169
- - test/adapters/test_middleware_test.rb
170
- - test/adapters/typhoeus_test.rb
171
- - test/authentication_middleware_test.rb
172
- - test/composite_read_io_test.rb
173
- - test/connection_test.rb
174
- - test/env_test.rb
175
- - test/helper.rb
176
- - test/live_server.rb
177
- - test/middleware/instrumentation_test.rb
178
- - test/middleware/retry_test.rb
179
- - test/middleware_stack_test.rb
180
- - test/options_test.rb
181
- - test/parameters_test.rb
182
- - test/request_middleware_test.rb
183
- - test/response_middleware_test.rb
184
- - test/strawberry.rb
185
- - test/utils_test.rb
121
+ test_files: []
122
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 1c31dbb021fc6a43b4f0b102a9a3ccf52a72303a
4
- data.tar.gz: 54da868027777adb5a21145bd6433b0154af2297
5
- SHA512:
6
- metadata.gz: 22c1c286687ca596bd1d6b7d9a6a3749731f6d8962a5bbbe7e1e39cf22e364b92010ae44446cf1804ba10567a2e6409cc2be537375d9f47ace9bca909196dcd3
7
- data.tar.gz: 7e8116cdeea918b8e7de661ec6d49d839960e26f136903e53db62e8cc353f89b3ac053d5efe6401995129418ae4dfce8fda9c8a471093223dca08002615d10e1
data/.document DELETED
@@ -1,6 +0,0 @@
1
- CONTRIBUTING.md
2
- LICENSE.md
3
- README.md
4
- bin/*
5
- lib/**/*.rb
6
- test/**/*.rb
@@ -1,20 +0,0 @@
1
- # Faraday Changelog
2
-
3
- ## v0.9.1
4
-
5
- * Refactor Net:HTTP adapter so that with_net_http_connection can be overridden to allow pooled connections. (@Ben-M)
6
- * Add configurable methods that bypass `retry_if` in the Retry request middleware. (@mike-bourgeous)
7
-
8
- ## v0.9.0
9
-
10
- * Add HTTPClient adapter (@hakanensari)
11
- * Improve Retry handler (@mislav)
12
- * Remove autoloading by default (@technoweenie)
13
- * Improve internal docs (@technoweenie, @mislav)
14
- * Respect user/password in http proxy string (@mislav)
15
- * Adapter options are structs. Reinforces consistent options across adapters
16
- (@technoweenie)
17
- * Stop stripping trailing / off base URLs in a Faraday::Connection. (@technoweenie)
18
- * Add a configurable URI parser. (@technoweenie)
19
- * Remove need to manually autoload when using the authorization header helpers on `Faraday::Connection`. (@technoweenie)
20
- * `Faraday::Adapter::Test` respects the `Faraday::RequestOptions#params_encoder` option. (@technoweenie)
@@ -1,36 +0,0 @@
1
- ## Contributing
2
-
3
- You can run the test suite against a live server by running `script/test`. It
4
- automatically starts a test server in background. Only tests in
5
- `test/adapters/*_test.rb` require a server, though.
6
-
7
- ``` sh
8
- # run the whole suite
9
- $ script/test
10
-
11
- # run only specific files
12
- $ script/test excon typhoeus
13
-
14
- # run tests using SSL
15
- $ SSL=yes script/test
16
- ```
17
-
18
- We will accept middleware that:
19
-
20
- 1. is useful to a broader audience, but can be implemented relatively
21
- simple; and
22
- 2. which isn't already present in [faraday_middleware][] project.
23
-
24
- We will accept adapters that:
25
-
26
- 1. support SSL & streaming;
27
- 1. are proven and may have better performance than existing ones; or
28
- 2. if they have features not present in included adapters.
29
-
30
- We are pushing towards a 1.0 release, when we will have to follow [Semantic
31
- Versioning][semver]. If your patch includes changes to break compatibility,
32
- note that so we can add it to the [Changelog][].
33
-
34
- [semver]: http://semver.org/
35
- [changelog]: https://github.com/lostisland/faraday/wiki/Changelog
36
- [faraday_middleware]: https://github.com/lostisland/faraday_middleware/wiki
data/Gemfile DELETED
@@ -1,25 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'ffi-ncurses', '~> 0.3', :platforms => :jruby
4
- gem 'jruby-openssl', '~> 0.8.8', :platforms => :jruby
5
- gem 'rake'
6
-
7
- group :test do
8
- gem 'coveralls', :require => false
9
- gem 'em-http-request', '>= 1.1', :require => 'em-http'
10
- gem 'em-synchrony', '>= 1.0.3', :require => ['em-synchrony', 'em-synchrony/em-http']
11
- gem 'excon', '>= 0.27.4'
12
- gem 'httpclient', '>= 2.2'
13
- gem 'leftright', '>= 0.9', :require => false
14
- gem 'mime-types', '~> 1.25', :platforms => [:jruby, :ruby_18]
15
- gem 'minitest', '>= 5.0.5'
16
- gem 'net-http-persistent', '>= 2.9.4'
17
- gem 'patron', '>= 0.4.2', :platforms => :ruby
18
- gem 'rack-test', '>= 0.6', :require => 'rack/test'
19
- gem 'rest-client', '~> 1.6.0', :platforms => [:jruby, :ruby_18]
20
- gem 'simplecov'
21
- gem 'sinatra', '~> 1.3'
22
- gem 'typhoeus', '~> 0.3.3', :platforms => :ruby
23
- end
24
-
25
- gemspec
data/Rakefile DELETED
@@ -1,71 +0,0 @@
1
- require 'date'
2
- require 'fileutils'
3
- require 'openssl'
4
- require 'rake/testtask'
5
- require 'bundler'
6
- Bundler::GemHelper.install_tasks
7
-
8
- task :default => :test
9
-
10
- ## helper functions
11
-
12
- def name
13
- @name ||= Dir['*.gemspec'].first.split('.').first
14
- end
15
-
16
- def version
17
- line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
18
- line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
19
- end
20
-
21
- def gemspec_file
22
- "#{name}.gemspec"
23
- end
24
-
25
- def gem_file
26
- "#{name}-#{version}.gem"
27
- end
28
-
29
- def replace_header(head, header_name)
30
- head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
31
- end
32
-
33
- # Adapted from WEBrick::Utils. Skips cert extensions so it
34
- # can be used as a CA bundle
35
- def create_self_signed_cert(bits, cn, comment)
36
- rsa = OpenSSL::PKey::RSA.new(bits)
37
- cert = OpenSSL::X509::Certificate.new
38
- cert.version = 2
39
- cert.serial = 1
40
- name = OpenSSL::X509::Name.new(cn)
41
- cert.subject = name
42
- cert.issuer = name
43
- cert.not_before = Time.now
44
- cert.not_after = Time.now + (365*24*60*60)
45
- cert.public_key = rsa.public_key
46
- cert.sign(rsa, OpenSSL::Digest::SHA1.new)
47
- return [cert, rsa]
48
- end
49
-
50
- ## standard tasks
51
-
52
- desc "Run all tests"
53
- task :test do
54
- exec 'script/test'
55
- end
56
-
57
- desc "Generate certificates for SSL tests"
58
- task :'test:generate_certs' do
59
- cert, key = create_self_signed_cert(1024, [['CN', 'localhost']], 'Faraday Test CA')
60
- FileUtils.mkdir_p 'tmp'
61
- File.open('tmp/faraday-cert.key', 'w') {|f| f.puts(key) }
62
- File.open('tmp/faraday-cert.crt', 'w') {|f| f.puts(cert.to_s) }
63
- end
64
-
65
- file 'tmp/faraday-cert.key' => :'test:generate_certs'
66
- file 'tmp/faraday-cert.crt' => :'test:generate_certs'
67
-
68
- desc "Open an irb session preloaded with this library"
69
- task :console do
70
- sh "irb -rubygems -r ./lib/#{name}.rb"
71
- end
@@ -1,34 +0,0 @@
1
- lib = "faraday"
2
- lib_file = File.expand_path("../lib/#{lib}.rb", __FILE__)
3
- File.read(lib_file) =~ /\bVERSION\s*=\s*["'](.+?)["']/
4
- version = $1
5
-
6
- Gem::Specification.new do |spec|
7
- spec.specification_version = 2 if spec.respond_to? :specification_version=
8
- spec.required_rubygems_version = '>= 1.3.5'
9
-
10
- spec.name = lib
11
- spec.version = version
12
-
13
- spec.summary = "HTTP/REST API client library."
14
-
15
- spec.authors = ["Rick Olson"]
16
- spec.email = 'technoweenie@gmail.com'
17
- spec.homepage = 'https://github.com/lostisland/faraday'
18
- spec.licenses = ['MIT']
19
-
20
- spec.add_dependency 'multipart-post', '>= 1.2', '< 3'
21
- spec.add_development_dependency 'bundler', '~> 1.0'
22
-
23
- spec.files = %w(.document CHANGELOG.md CONTRIBUTING.md Gemfile LICENSE.md README.md Rakefile)
24
- spec.files << "#{lib}.gemspec"
25
- spec.files += Dir.glob("lib/**/*.rb")
26
- spec.files += Dir.glob("test/**/*.{rb,txt}")
27
- spec.files += Dir.glob("script/*")
28
-
29
- dev_null = File.exist?('/dev/null') ? '/dev/null' : 'NUL'
30
- git_files = `git ls-files -z 2>#{dev_null}`
31
- spec.files &= git_files.split("\0") if $?.success?
32
-
33
- spec.test_files = Dir.glob("test/**/*.rb")
34
- end