excon 0.62.0 → 0.92.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +5 -5
  2. data/CONTRIBUTING.md +0 -1
  3. data/LICENSE.md +1 -1
  4. data/README.md +7 -6
  5. data/data/cacert.pem +1220 -1828
  6. data/excon.gemspec +19 -3
  7. data/lib/excon/connection.rb +216 -139
  8. data/lib/excon/constants.rb +38 -13
  9. data/lib/excon/error.rb +15 -0
  10. data/lib/excon/headers.rb +4 -3
  11. data/lib/excon/instrumentors/logging_instrumentor.rb +5 -16
  12. data/lib/excon/instrumentors/standard_instrumentor.rb +2 -9
  13. data/lib/excon/middlewares/base.rb +6 -0
  14. data/lib/excon/middlewares/capture_cookies.rb +1 -1
  15. data/lib/excon/middlewares/decompress.rb +11 -4
  16. data/lib/excon/middlewares/expects.rb +7 -1
  17. data/lib/excon/middlewares/idempotent.rb +20 -3
  18. data/lib/excon/middlewares/instrumentor.rb +8 -0
  19. data/lib/excon/middlewares/mock.rb +12 -3
  20. data/lib/excon/middlewares/redirect_follower.rb +25 -3
  21. data/lib/excon/middlewares/response_parser.rb +3 -0
  22. data/lib/excon/pretty_printer.rb +1 -8
  23. data/lib/excon/response.rb +12 -9
  24. data/lib/excon/socket.rb +59 -42
  25. data/lib/excon/ssl_socket.rb +37 -15
  26. data/lib/excon/test/plugin/server/exec.rb +5 -2
  27. data/lib/excon/test/plugin/server/puma.rb +4 -1
  28. data/lib/excon/test/plugin/server/unicorn.rb +5 -0
  29. data/lib/excon/test/plugin/server/webrick.rb +4 -1
  30. data/lib/excon/test/server.rb +1 -1
  31. data/lib/excon/unix_socket.rb +1 -0
  32. data/lib/excon/utils.rb +59 -5
  33. data/lib/excon/version.rb +1 -1
  34. data/lib/excon.rb +25 -17
  35. metadata +27 -98
  36. data/.document +0 -5
  37. data/.gitignore +0 -13
  38. data/.rspec +0 -3
  39. data/.travis.yml +0 -29
  40. data/Gemfile +0 -19
  41. data/Rakefile +0 -41
  42. data/benchmarks/class_vs_lambda.rb +0 -50
  43. data/benchmarks/concat_vs_insert.rb +0 -21
  44. data/benchmarks/concat_vs_interpolate.rb +0 -22
  45. data/benchmarks/cr_lf.rb +0 -21
  46. data/benchmarks/downcase-eq-eq_vs_casecmp.rb +0 -169
  47. data/benchmarks/excon.rb +0 -69
  48. data/benchmarks/excon_vs.rb +0 -165
  49. data/benchmarks/for_vs_array_each.rb +0 -27
  50. data/benchmarks/for_vs_hash_each.rb +0 -27
  51. data/benchmarks/has_key-vs-lookup.rb +0 -177
  52. data/benchmarks/headers_case_sensitivity.rb +0 -83
  53. data/benchmarks/headers_split_vs_match.rb +0 -34
  54. data/benchmarks/implicit_block-vs-explicit_block.rb +0 -98
  55. data/benchmarks/merging.rb +0 -21
  56. data/benchmarks/single_vs_double_quotes.rb +0 -21
  57. data/benchmarks/string_ranged_index.rb +0 -87
  58. data/benchmarks/strip_newline.rb +0 -115
  59. data/benchmarks/vs_stdlib.rb +0 -82
  60. data/changelog.txt +0 -1083
  61. data/spec/excon/error_spec.rb +0 -139
  62. data/spec/excon/test/server_spec.rb +0 -28
  63. data/spec/excon_spec.rb +0 -7
  64. data/spec/helpers/file_path_helpers.rb +0 -22
  65. data/spec/requests/basic_spec.rb +0 -40
  66. data/spec/requests/eof_requests_spec.rb +0 -36
  67. data/spec/requests/unix_socket_spec.rb +0 -46
  68. data/spec/spec_helper.rb +0 -24
  69. data/spec/support/shared_contexts/test_server_context.rb +0 -83
  70. data/spec/support/shared_examples/shared_example_for_clients.rb +0 -218
  71. data/spec/support/shared_examples/shared_example_for_streaming_clients.rb +0 -20
  72. data/spec/support/shared_examples/shared_example_for_test_servers.rb +0 -16
  73. data/tests/authorization_header_tests.rb +0 -29
  74. data/tests/bad_tests.rb +0 -47
  75. data/tests/basic_tests.rb +0 -351
  76. data/tests/batch_requests.rb +0 -133
  77. data/tests/complete_responses.rb +0 -31
  78. data/tests/data/127.0.0.1.cert.crt +0 -20
  79. data/tests/data/127.0.0.1.cert.key +0 -27
  80. data/tests/data/excon.cert.crt +0 -20
  81. data/tests/data/excon.cert.key +0 -27
  82. data/tests/data/xs +0 -1
  83. data/tests/error_tests.rb +0 -145
  84. data/tests/header_tests.rb +0 -119
  85. data/tests/middlewares/canned_response_tests.rb +0 -34
  86. data/tests/middlewares/capture_cookies_tests.rb +0 -34
  87. data/tests/middlewares/decompress_tests.rb +0 -157
  88. data/tests/middlewares/escape_path_tests.rb +0 -36
  89. data/tests/middlewares/idempotent_tests.rb +0 -206
  90. data/tests/middlewares/instrumentation_tests.rb +0 -315
  91. data/tests/middlewares/mock_tests.rb +0 -304
  92. data/tests/middlewares/redirect_follower_tests.rb +0 -112
  93. data/tests/pipeline_tests.rb +0 -40
  94. data/tests/proxy_tests.rb +0 -306
  95. data/tests/query_string_tests.rb +0 -87
  96. data/tests/rackups/basic.rb +0 -41
  97. data/tests/rackups/basic.ru +0 -3
  98. data/tests/rackups/basic_auth.ru +0 -14
  99. data/tests/rackups/deflater.ru +0 -4
  100. data/tests/rackups/proxy.ru +0 -18
  101. data/tests/rackups/query_string.ru +0 -13
  102. data/tests/rackups/redirecting.ru +0 -23
  103. data/tests/rackups/redirecting_with_cookie.ru +0 -40
  104. data/tests/rackups/request_headers.ru +0 -15
  105. data/tests/rackups/request_methods.ru +0 -21
  106. data/tests/rackups/response_header.ru +0 -18
  107. data/tests/rackups/ssl.ru +0 -16
  108. data/tests/rackups/ssl_mismatched_cn.ru +0 -15
  109. data/tests/rackups/ssl_verify_peer.ru +0 -16
  110. data/tests/rackups/streaming.ru +0 -30
  111. data/tests/rackups/thread_safety.ru +0 -17
  112. data/tests/rackups/timeout.ru +0 -14
  113. data/tests/rackups/webrick_patch.rb +0 -34
  114. data/tests/request_headers_tests.rb +0 -21
  115. data/tests/request_method_tests.rb +0 -47
  116. data/tests/request_tests.rb +0 -59
  117. data/tests/response_tests.rb +0 -197
  118. data/tests/servers/bad.rb +0 -20
  119. data/tests/servers/eof.rb +0 -17
  120. data/tests/servers/error.rb +0 -20
  121. data/tests/servers/good.rb +0 -350
  122. data/tests/test_helper.rb +0 -306
  123. data/tests/thread_safety_tests.rb +0 -39
  124. data/tests/timeout_tests.rb +0 -12
  125. data/tests/utils_tests.rb +0 -81
data/changelog.txt DELETED
@@ -1,1083 +0,0 @@
1
- 0.62.0 2018-03-27
2
- =================
3
-
4
- remove binmode call for StringIO objects
5
-
6
- 0.61.0 2018-03-16
7
- =================
8
-
9
- use default ports for sockets if none specified
10
- add ruby 2.4 and 2.5 to ci testing
11
- follow relative location redirects
12
-
13
- 0.60.0 2017-12-15
14
- =================
15
-
16
- add requests_in_batches
17
- cleanup rakefile, gemfile, etc
18
- add logger/logger= and logging instrumentor
19
- rewind response_block in idempotent instrumentor
20
-
21
-
22
- 0.59.0 2017-09-05
23
- =================
24
-
25
- fix backtick vs quote in error message
26
- fix socket pooling to be per-connection instead of per thread
27
- fix tests to ignore proxy env settings
28
-
29
- 0.58.0 08/01/2017
30
- =================
31
-
32
- remove unused error
33
- add retry_interval and related settings for backoff
34
-
35
- 0.57.1 06/30/2017
36
- =================
37
-
38
- fix remote-ip setting to prevent off-by-one issue
39
-
40
- 0.57.0 06/14/2017
41
- =================
42
-
43
- add client_key_data and client_cert_data to valid keys
44
- allow passing explicit host to unix sockets
45
-
46
- 0.56.0 05/31/2017
47
- =================
48
-
49
- fix proxy parse errors
50
- fix url-escaped proxy creds for ssl
51
-
52
- 0.55.0 02/07/2017
53
- =================
54
-
55
- fix minor readme error
56
- update bundled certs
57
- update self-signed certs
58
- update to test with ruby 2.3.3
59
- fix unitialized ResponseParseError error
60
- add missing 'spec_helper' require in tests
61
- add missing 'time' require in tests
62
- use unescape_uri for user/pass in Authorization header
63
- use secure rubygems source uri
64
- update gemnasium badge
65
- update fury badge
66
- update travis badge
67
- update gittip badge
68
-
69
- 0.54.0 10/17/2016
70
- =================
71
-
72
- add howsmyssl rake task for sanity checking
73
- update default ciphers to mozilla intermediate list
74
- fix typo in changelog
75
-
76
- 0.53.0 09/27/2016
77
- =================
78
-
79
- add ability to pass ssl options as strings
80
- progress towards rspec
81
- update bundled certs
82
-
83
- 0.52.0 08/22/2016
84
- =================
85
-
86
- freeze string literals
87
- move toward interpolation, over concatenation (frozen string related)
88
- start conversion toward rspec
89
- move user/pass authorization header setting to request level
90
-
91
- 0.51.0 07/08/2016
92
- =================
93
-
94
- tweak new errors to be an alias rather than inherit
95
-
96
- 0.50.1 06/28/2016
97
- =================
98
-
99
- re-add some missing errors from refactoring
100
-
101
- 0.50.0 06/28/2016
102
- =================
103
-
104
- expand readme
105
- refactor errors for consistancy
106
- optionally allow unstubbed requests
107
- parse/verify path as well as host for connection
108
-
109
- 0.49.0 03/28/2016
110
- =================
111
-
112
- fix nonblock ssl socket connect timeout handling
113
- fix README debug example
114
- make unique class for certificate errors
115
- connection logic cleanup
116
- change stubs back to global (with local option via defaults)
117
- specific handling for set-cookie header exceptions
118
-
119
- 0.48.0 03/07/2016
120
- =================
121
-
122
- optimize by writing part of body with headers when it fits in a chunk
123
-
124
- 0.47.0 02/29/2016
125
- =================
126
-
127
- fix bundled certs
128
- fix instrumentors to allow recording timings
129
-
130
- 0.46.0 02/26/2016
131
- =================
132
-
133
- empty host header for unix sockets
134
- raise EOFError on unexpectedly read nil
135
- add host/path/port to response
136
- keep cookies through redirects
137
- fix to skip decompressing empty bodies
138
- fix escaping for query string
139
- README improvements
140
- fix SocketError initializer
141
- fix incorrect error class usage
142
-
143
- 0.45.4 07/13/2015
144
- =================
145
-
146
- fix undefined errors in error handling
147
- ignore empty proxy values
148
-
149
- 0.45.3 04/21/2015
150
- =================
151
-
152
- guard warning about openssl versions in case constant undefined
153
- ensure rackup listens properly, fixes local tests
154
-
155
- 0.45.2 04/16/2015
156
- =================
157
-
158
- add raw_status reader
159
- improved tests around response/status
160
- rescue IO::WaitWritable for SSL sockets also
161
- indentation fixes
162
- tighten rescue in ssl socket connect to better report non-timeouts
163
- rescue EAGAIN and EWOULDBLOCK for non-blocking connects
164
-
165
- 0.45.1 03/27/2015
166
- =================
167
-
168
- fix scope for readline buffer, fixes dropped initial characters
169
-
170
- 0.45.0 03/26/2015
171
- =================
172
-
173
- prefer default SSL config to ENV, when available
174
- document instrumentor deviation from rails format
175
- better error/warning around openssl 1.0.2 bug
176
- fix nonblocking ssl connect to not have tight loop
177
- also remove user/pass when following redirects
178
-
179
- 0.44.4 03/04/2015
180
- =================
181
-
182
- update bundled certs
183
- loosen travis versions, to get ~> type follow-the-leader behavior
184
- fix syntax issue in ruby 2.2.1
185
-
186
- 0.44.3 02/24/2015
187
- =================
188
-
189
- don't pass body when following GET redirects
190
- fix error rescue case to properly reference error object
191
-
192
- 0.44.2 02/11/2015
193
- =================
194
-
195
- simplify data[:debug] logic
196
- catch nonblock errors around readline
197
-
198
-
199
- 0.44.1 02/01/2015
200
- =================
201
-
202
- fix issue with frozen strings in user/pass
203
-
204
- 0.44.0 01/30/2015
205
- =================
206
-
207
- re-implement timeout using IO.select
208
- document custom URI parser usage
209
- fix ruby 2.2 build
210
- improved IPv6 support
211
- Excon::Utils improvements
212
- add 429 errors
213
-
214
- 0.43.0 01/09/2015
215
- =================
216
-
217
- use basic error instead of nil as default for socket error
218
- allow setup_proxy to accept uri
219
- add disable_proxy and proxy: false to disable proxy settings
220
-
221
- 0.42.1 12/04/2014
222
- =================
223
-
224
- update bundled certs
225
- fix redirect follower to avoid erroneously setting basic auth
226
-
227
- 0.42.0 12/02/2014
228
- =================
229
-
230
- fix stubbing section of README
231
- follow redirect for all request methods
232
- remove unhelpful link for excon.io
233
- rescue/ignore illegal seek on rewind
234
- add ssl_cert_store option
235
- allow non-RSA ssl keys
236
- attempt to rewind request_block when idempotent
237
- add configurable thread safety for socket pool
238
-
239
-
240
- 0.41.0 11/05/2014
241
- =================
242
-
243
- add :ssl_verify_peer_host option for dev purposes
244
- add #reason_phrase to response
245
-
246
- 0.40.0 10/06/2014
247
- =================
248
-
249
- fix support for specifying ssl_ca_path
250
- more consistent response_block/response.body behavior for mocks
251
- add support for proxies running on unix domain sockets
252
-
253
- 0.39.6 09/22/2014
254
- =================
255
-
256
- pretty print stub not found errors
257
-
258
- 0.39.5 09/14/2014
259
- =================
260
-
261
- fix double delegation error
262
- make client_key_pass valid connection key
263
- cast headers to_s to fix historical symbol usage
264
-
265
- 0.39.4 08/08/2014
266
- =================
267
-
268
- ensure Response#new uses case-insensitive headers
269
- add client cert pass phrase support
270
-
271
- 0.39.3 08/05/2014
272
- =================
273
-
274
- fix for nil and/or unknown proxy values
275
-
276
- 0.39.2 08/04/2014
277
- =================
278
-
279
- respect both ca_file/ca_path when both present
280
-
281
- 0.39.1 08/04/2014
282
- =================
283
-
284
- fix for ssl proxies + remote_ip stuff
285
-
286
- 0.39.0 08/01/2014
287
- =================
288
-
289
- revert to a blocking readline, for performance
290
- simplify status lookup
291
- consolidate proxy code
292
- store defaults as a constant
293
- avoid setting nil user/pass vs just no setting keys
294
- move idempotent warnings in to middleware
295
- simplify validations
296
- use constants in utils
297
- group non-chunk response paring
298
- optimize/simplify socket local lookup
299
- simplify to pro-actively build downcased headers instead of lazily do so
300
- add version to options (so it will appear in debug)
301
- add OS/Ruby version info to options/version for debugging
302
- more consistent output styling for errors
303
- remove TE stuff to simplify
304
- shorten timeout/sleep in streaming tests
305
- remove transfer-encoding altogether if it only includes chunked
306
- only rescue http status errors in relevant tests
307
- use case-insensitive headers in stubs also
308
-
309
- 0.38.0 07/09/2014
310
- =================
311
-
312
- avoid reading non-file bodies (mock related fix)
313
- fixes to readme links
314
- fix excon_debug to set debug_response
315
- ensure both \r and \n are read when parsing headers
316
-
317
- 0.37.0 06/09/2014
318
- =================
319
-
320
- fix chunked reading to avoid chop! on non-chunk endings
321
- fixes for proxy usage
322
-
323
- 0.36.0 06/04/2014
324
- =================
325
-
326
- fix to reconcile streaming changes for chunked encoding
327
-
328
- 0.35.0 06/03/2014
329
- =================
330
-
331
- fix for responses with content_length
332
-
333
- 0.34.0 05/29/2014
334
- =================
335
-
336
- add support for setting ssl_verify_callback
337
- stream partial results imediately, when available
338
- update rack/unicorn in tests to support streaming tests
339
- skip streaming tests on jruby (as they depend on unicorn)
340
- update travis tests to use newest rubinius
341
- improve formatting/readibility of standard instrumentor output
342
-
343
- 0.33.0 05/15/2014
344
- =================
345
-
346
- README clarifications around defaults and basic auth
347
- case insensitive headers
348
-
349
- 0.32.1 03/13/2014
350
- =================
351
-
352
- Fix for SNI (should occur prior to connect)
353
-
354
- 0.32.0 02/27/2014
355
- =================
356
-
357
- README improvements
358
- fixes around LICENSE/CONTRIBUTING/CONTRIBUTORS
359
- update bundled cert
360
- nonblock connect/timeout fixes for ssl sockets
361
- skip reverse lookups where feasible
362
- more secure ssl settings, when available
363
- add escape stuff as middleware
364
- fix to raise exceptions properly
365
- fix for keep alive check
366
- add tests around keep alive
367
- escape/unescape uri added to utils
368
- add support for reusable local ports
369
-
370
- 0.31.0 12/16/2013
371
- =================
372
-
373
- test fixes for Bundler.require usage and Rack::Lint
374
- use production mode + dump errors for tests
375
- use Utils in Excon.stub
376
- add implementation of stuff from WEBrick directly to utils
377
- update test server to send connection close and process buffer after response
378
- add :persistent option, defaults true
379
- group HTTP errors by type
380
- patch to webrick to workaround intermitent test failures
381
- only use Open4 for 1.8.7
382
- update/expand getting help/getting involved in readme
383
-
384
- 0.30.0 11/25/2013
385
- =================
386
-
387
- ensure schema/host/port are passed to redirect follower with relative location
388
- add .ruby-version and .ruby-gemset to .gitignore
389
- pass nil to :response_block for unknown values
390
- use :response_block if expects middleware is not used
391
- refactor Response.parse, add tests
392
- support header continuations
393
- support chunked trailers
394
- improve decompress middleware/tests
395
- add accept-encoding in decompress middleware requests, if missing
396
- fixes for connection close detection
397
- support transfer encoding
398
- fix deprecated URI.decode usage
399
- do not try to use tcp_nodelay for unix sockets
400
- nonblocking connect, connect timeouts for unix sockets
401
- ignore IO#close exceptions
402
- move conditional nonblock to only SSLSocket
403
- skip reverse lookups
404
- avoid mutating canned response from middleware
405
- test against latest rubinius, no longer allow failures
406
- add unicorn as rubinius dev dependency
407
- use webbrick form decode
408
-
409
- 0.29.0 11/07/2013
410
- =================
411
-
412
- make nonblock invalid as request key
413
- add backtrace to all warnings
414
- do not allow idempotent + pipeline
415
- close socket after pipeline if needed
416
- fix Socket#read to match IO.read EOF behavior
417
- use Socket#read for non-blocking readline
418
- respect read_timeout for status read
419
- read response until status line, discard chunked trailer
420
- fix redirect follower to properly change host
421
-
422
- 0.28.0 10/28/2013
423
- =================
424
-
425
- tag warning messages with [excon]
426
- allow specific ssl_versions
427
- fixes around param validation
428
- create a new connection for redirect_follower middleware
429
- add connection_uri/request_uri to utils
430
- avoid mutating connection data
431
- remove connection key in redirect_follower
432
-
433
-
434
- 0.27.6 10/15/2013
435
- =================
436
-
437
- warn, but no longer mutate params during validation
438
-
439
- 0.27.5 10/14/2013
440
- =================
441
-
442
- extract validations/port_string to utils module
443
-
444
- 0.27.4 10/14/2013
445
- =================
446
-
447
- fix for https/port string values
448
-
449
- 0.27.3 10/11/2013
450
- =================
451
-
452
- better invalid key handling
453
- avoid mutating port value
454
-
455
- 0.27.2 10/10/2013
456
- =================
457
-
458
- avoid mutating datum in idempotent middleware
459
-
460
- 0.27.1 10/09/2013
461
- =================
462
-
463
- improve warning messages for valid keys
464
-
465
- 0.27.0 10/04/2013
466
- =================
467
-
468
- display warnings based on ruby and/or debug settings
469
- add missing valid connection keys
470
- remove 1.8.7 related nonblock warning
471
- add support for unix sockets
472
- cleanup constants
473
- improve test setup to minimize server spawning
474
- separate connection/request key validation
475
-
476
- 0.26.0 09/24/2013
477
- =================
478
-
479
- add basic decompress middleware
480
- update readme mocking+stubbing info
481
- add unstub functionality
482
- avoid modifying original options in request
483
- jruby fixes
484
- misc cleanup/fixes
485
- encoding/compatibility fixes
486
- close sockets on error
487
- warn when both request_block and idempotent are set
488
-
489
- 0.25.3 07/18/2013
490
- =================
491
-
492
- respect SSL_CERT_DIR/SSL_CERT_FILE
493
- more aggressively include bundled cert as fallback
494
-
495
- 0.25.2 07/18/2013
496
- =================
497
-
498
- add license to gemspec
499
- add "excon/#{version}" default user agent
500
- create/use response parser middleware
501
- fix proxy request info to use datum rather than @data
502
-
503
-
504
- 0.25.1 07/01/2013
505
- =================
506
-
507
- fix for jruby ssl
508
- more explicit description in docs
509
-
510
- 0.25.0 06/20/2013
511
- =================
512
-
513
- attempt to use OS certs first, only use bundled as fallback
514
- normalize method in stubs
515
-
516
- 0.24.0 06/12/2013
517
- =================
518
-
519
- allow passing ssl creds as strings or file paths
520
-
521
- 0.23.0 06/10/2013
522
- =================
523
-
524
- defer writing request/headers to allow all-in-one
525
- allow opt-in for request/response error info
526
- add configurable TCP_NODELAY
527
- consolidate warning display
528
- respect ruby verbosity conventions
529
- fix copyright years in notice
530
-
531
- 0.22.1 05/17/2013
532
- =================
533
-
534
- fix logic error in dropping default ports
535
-
536
- 0.22.0 05/17/2013
537
- =================
538
-
539
- remove request/response info from default error messages to avoid
540
- credential leaks
541
- add option to omit default ports (http:80 and https:443)
542
- add examples for form encoding
543
- updates to facilitate streaming responses from middleware responses
544
-
545
- 0.21.0 05/04/2013
546
- =================
547
-
548
- update bundled cacert
549
- add deprecated connection helper
550
- URL decode user/pass for basic auth
551
- fix odd name/permissions in benchmarks
552
- check for socket before closing one
553
- add support for no_proxy
554
- include scheme in socket key
555
- make socket.connect private
556
- allow stub lookup with Excon.stub_for
557
-
558
- 0.20.1 03/19/2013
559
- =================
560
-
561
- dup middlewares to avoid overwriting original set
562
- delete datum[:response] in idempotent to ensure new response is parsed
563
-
564
- 0.20.0 03/08/2013
565
- =================
566
-
567
- redact password from inspect/instrument
568
- downgrade severity of invalid keys from error to warning
569
-
570
- 0.19.5 03/04/2013
571
- =================
572
-
573
- fix ssl socket proxy setup
574
-
575
- 0.19.4 03/04/2013
576
- =================
577
-
578
- fix merge order of params in new
579
-
580
- 0.19.3 03/01/2013
581
- =================
582
-
583
- properly raise errors when datum[:stack] has not yet been set
584
-
585
- 0.19.2 02/28/2013
586
- =================
587
-
588
- add client_cert, client_key to valid connection options
589
-
590
- 0.19.1 02/27/2013
591
- =================
592
-
593
- fix for ssl proxies to allow connect response to be read
594
-
595
- 0.19.0 02/27/2013
596
- =================
597
-
598
- fix requests (pipeline) example in README
599
- make StubNotFound inherit from StandardError (not Excon::Errors::Error)
600
- idempotent reimplemented as middleware
601
- remaining idempotent/instrumentor functionality moved to middleware
602
- move uri parsing to Excon.new
603
- allow for configurable URI parser (ie Addressable vs URI)
604
- move VALID_CONNECTION_KEYS to constants
605
- move idempotent tests to middleware directory
606
- fix output of expects middleware to pass response objects instead of
607
- hashes
608
-
609
- 0.18.5 02/22/2013
610
- =================
611
-
612
- add family to known keys
613
-
614
- 0.18.4 02/21/2013
615
- =================
616
-
617
- remove ssl proxy host_port usage
618
-
619
- 0.18.3 02/21/2013
620
- =================
621
-
622
- update response accessors to read from/write to @data
623
-
624
- 0.18.2 02/21/2013
625
- =================
626
-
627
- one shouldn't rush, fix typo in previous
628
-
629
- 0.18.1 02/21/2013
630
- =================
631
-
632
- fix for http errors when using mocks
633
-
634
- 0.18.0 02/21/2013
635
- =================
636
-
637
- more refactoring around middlewares
638
- add pipelining capabilities
639
- allow [] style access to response attributes
640
-
641
-
642
- 0.17.0 02/01/2013
643
- =================
644
-
645
- add patch method
646
- allow passing family for addresses to params/proxy
647
- more consistent empty header passing
648
- nicer debug output
649
- internal refactoring toward middleware pattern
650
-
651
- 0.16.10 11/16/2012
652
- ==================
653
-
654
- set default request_params for stub
655
- do not attempt to read body for CONNECT requests
656
-
657
- 0.16.9 11/16/2012
658
- =================
659
-
660
- readme cleanup/clarification around stubs
661
- fix for reading response from ssl proxy
662
-
663
- 0.16.8 11/12/2012
664
- =================
665
-
666
- set file body pos to 0 at beginning of request
667
- add eventmachine to dev dependencies for bad server tests
668
- comment out benchmark deps for now
669
- fix typo in readme
670
-
671
- 0.16.7 10/17/2012
672
- =================
673
-
674
- fix typo in host_port per-request patch
675
-
676
- 0.16.6 10/17/2012
677
- =================
678
-
679
- fix for host_port to recalculate on a per-request basis
680
-
681
- 0.16.5 10/17/2012
682
- =================
683
-
684
- Also retry Timeouts on idempotent requests
685
- Excon.stub now breaks out user/pass from url if supplied
686
- loosen ssl version requirement to allow negotiation
687
- eof on read should return '' instead of nil
688
- build host_port up front to avoid recalculating
689
- set Proxy-Connection: Keep-Alive for https proxies
690
- postpone https upgrade until after proxy connect
691
-
692
- 0.16.4 09/25/2012
693
- =================
694
-
695
- better behavior nonblock and use DEFAULT_NONBLOCK constant
696
- update deprecation/warnings to use $stderr
697
- consistency fixes for REDACT
698
- add REDACT behavior to standard_instrumentor
699
-
700
- 0.16.3 09/20/2012
701
- =================
702
-
703
- remove overly paranoid const checking
704
- change chunk_size to be a param for consistency
705
-
706
- 0.16.2 08/27/2012
707
- =================
708
-
709
- provide more helpful backtraces on connection requests
710
- provide more helpful backtraces on one-off requests
711
- rearrange class methods so params will pass to socket
712
- integrate nonblock backwards compatability fix
713
- rearrange excon.rb to initialize defaults sooner
714
- set nonblock at init time for ssl socket
715
- fixes around nonbleck to properly skip/warn if unavailable but selected
716
-
717
- 0.16.1 08/15/2012
718
- =================
719
-
720
- default to SSLv3 usage
721
-
722
- 0.16.0 08/14/2012
723
- =================
724
-
725
- add nonblock => false to use blocking requests with Timeout.timeout
726
- update readme to describe nonblock and idempotent options
727
-
728
- 0.15.5 08/01/2012
729
- =================
730
-
731
- consolidate proxy handling
732
- proxy settings should pull from connection instead of params (allows
733
- Excon.defaults[:proxy])
734
- properly raise connect timeout errors
735
- change recommended standard instrumentor ENV to EXCON_DEBUG
736
- remove readline nonblock protections (they didn't fix the windows issue)
737
- don't swallow non-nonblock SSL exceptions
738
- consistency fixes for ssl nonblock error handling
739
- do SNI in ssl_socket setup
740
- use Excon::Response#parse to read https proxy response
741
-
742
- 0.15.4 07/16/12
743
- ===============
744
-
745
- rescue/retry nonblock errors from readline (even though they shouldn't
746
- occur)
747
-
748
- 0.15.3 07/16/12
749
- ===============
750
-
751
- remove erroneous newline in proxy auth header
752
-
753
- 0.15.2 07/16/12
754
- ===============
755
-
756
- fix capitalization of EXCON constant in auth stuff
757
- properly handle nil user/password values in auth
758
- various fixes to proxy and related tests
759
-
760
- 0.15.1 07/16/12
761
- ===============
762
-
763
- fix for sending user/pass to proxy
764
-
765
- 0.15.0 07/16/12
766
- ===============
767
-
768
- clarifications in README
769
- added base error class to message for Excon::SocketError
770
- fixes for proxy, sets properly on http and passes auth
771
-
772
- 0.14.3 07/05/12
773
- ===============
774
-
775
- remove a redundant setter in response streamer
776
- standardize on each (instead of for) to iterate enumerables
777
-
778
- 0.14.2 06/26/12
779
- ===============
780
-
781
- fix invoke_stub to convert files into strings before comparing
782
-
783
- 0.14.1 06/19/12
784
- ===============
785
-
786
- accept port as a separate option
787
- ensure first read from socket is nonblock (fixes read_timeouts)
788
- respect upper case env vars
789
-
790
- 0.14.0 05/31/12
791
- ===============
792
-
793
- make stubs LIFO for ease of use/understanding, updated README to
794
- explain
795
- simplify https proxy logic
796
- add instrumentation for responses
797
- add StandardInstrumentor (events got to stderr)
798
- EXCON_STANDARD_INSTRUMENTOR=true sets StandardInstrumentor as default
799
-
800
- 0.13.3 04/05/12
801
- ===============
802
-
803
- * fix for file size calculation in 1.8.7
804
-
805
- 0.13.3 04/05/12
806
- ===============
807
-
808
- * fixes for file like objects which do not respond to binmode
809
-
810
- 0.13.2 03/26/12
811
- ===============
812
-
813
- * fix to avoid issues when Tempfile is not required/defined. Thanks
814
- nextmat
815
-
816
- 0.13.1 03/26/12
817
- ===============
818
-
819
- * fix to allow for passing Tempfile objects as body. Thanks rkyrychuk
820
-
821
- 0.13.0 03/22/12
822
- ===============
823
-
824
- * workaround for jruby (use blocking read/write for ssl sockets)
825
-
826
- 0.12.0 03/18/12
827
- ===============
828
-
829
- * use params to set ssl (so each connection could differ)
830
- * bundle a default cert
831
-
832
- 0.11.0 03/15/12
833
- ===============
834
-
835
- * add request_block to support chunked requests
836
- * deprecate implicit block in favor of explicit response_block
837
- * loosen activesupport and jruby-openssl development dependencies
838
-
839
- 0.10.1 03/13/12
840
- ===============
841
-
842
- * avoid calling empty? on file body
843
-
844
- 0.10.0 03/01/12
845
- ===============
846
-
847
- * avoid setting/passing Content-Length headers for GET requests with
848
- no body
849
- * remove rcov from tasks/bundle in development
850
- * automatically parse and use basic auth when passed as part of a uri
851
- * fix for erroneous recursion in Excon.defaults=
852
-
853
- 0.9.6 02/22/12
854
- ==============
855
-
856
- * add support for setting ca_file. Thanks mattmatt!
857
- * add docs for Excon.stubs.clear and expects. Thanks masterkain!
858
- * add class level defaults
859
- * fix ruby warnings. Thanks foca!
860
- * improve instrumentation docs. Thanks mkb!
861
- * fix for empty body and SSL sockets. Thanks pweldon!
862
-
863
- 0.9.5 01/16/12
864
- ==============
865
-
866
- * fix getaddrinfo usage for rbx
867
- * fix mock handling when a block in passed
868
- * add jruby to ci
869
-
870
- 0.9.4 12/21/11
871
- ==============
872
-
873
- * fix for regexp/capture setting
874
-
875
- 0.9.3 12/21/11
876
- ==============
877
-
878
- * fix CONSTANTS referenced in SSL_Socket
879
- * fix default value for proxy in SSL_Socket
880
- * fix non-regexp header matching
881
- * return captures from regexp based params
882
-
883
- 0.9.2 12/16/11
884
- ==============
885
-
886
- * update mocks to allow for regex based matching
887
- * fixes for write_nonblock+OpenSSL weirdness
888
-
889
- 0.9.1 12/15/11
890
- ==============
891
-
892
- * update mock usage to be at the connection/request level
893
-
894
- 0.9.0 12/14/11
895
- ==============
896
-
897
- * add ability to do instrumentation
898
- * misc cleanup
899
- * deprecate retry_limit accessor in favor of passing as a param
900
-
901
- 0.8.0 12/12/11
902
- ==============
903
-
904
- * move mock handler to its own method
905
- * better handling around openssl errors
906
- * simplify writing by removing buffer
907
-
908
- 0.7.12 12/04/11
909
- ===============
910
-
911
- * revert: explicitly close files after writing
912
-
913
- 0.7.11 12/24/11
914
- ==============
915
-
916
- * rebuild gem broken gemspec with 1.8.x
917
-
918
- 0.7.10 12/04/11
919
- ===============
920
-
921
- * explicitly close files after writing
922
-
923
- 0.7.9 11/30/11
924
- ==============
925
-
926
- * add ability to modify retry limit
927
- * use addrinfo to avoid localhost and other IPv6 issues
928
- * update gemspec authors to add Dan Peterson and Matt Sanders
929
-
930
- 0.7.8 11/24/11
931
- ==============
932
-
933
- * rebuild gem broken gemspec with 1.8.x
934
-
935
- 0.7.7 11/24/11
936
- ==============
937
-
938
- * setup for travis ci automated testing
939
- * fix EOFError
940
- * use Socket.getaddrinfo to fix IPv6 issues
941
-
942
- 0.7.6 10/04/11
943
- ==============
944
-
945
- * fixes to provide for using openssl-nonblock for 1.8.x
946
- * correctly pass per-request settings to socket
947
- * fix for nonblocking stuff when waiting for socket close
948
- * use 127.0.0.1 instead of localhost in tests (fixes some errors)
949
-
950
- 0.7.5 10/03/11
951
- ==============
952
-
953
- * convert port to integer in sockaddr_in (jruby won't convert for you)
954
-
955
- 0.7.4 09/30/11
956
- ==============
957
-
958
- * rescue write would block from openssl
959
-
960
- 0.7.3 09/27/11
961
- ==============
962
-
963
- * fix nonblocking read to avoid reading past chunk in chunked encoded
964
- * rescue read would block from openssl
965
-
966
- 0.7.2 09/24/11
967
- ==============
968
-
969
- * fix buffer drain for socket#write. thanks dpiddy
970
- * rescue/retry timeout errors for idempotent requests. thanks dpiddy
971
- * timeouts should raise an excon specific error
972
-
973
- 0.7.1 09/13/11
974
- ==============
975
-
976
- * use nonblocking only when available (skip for 1.8.x SSL)
977
-
978
- 0.7.0 09/12/11
979
- ==============
980
-
981
- * change connects and most read/writes to use nonblocking methods
982
- * provide connect/read/write timeouts
983
-
984
- 0.6.6 09/06/11
985
- ==============
986
-
987
- * cleanup/refactoring. thanks nextmat
988
- * default to connection close as request delimiter
989
-
990
- 0.6.5 07/13/11
991
- ==============
992
-
993
- * properly stream responses with proc
994
- * fix mock with block to match real requests
995
-
996
- 0.6.4 07/05/11
997
- ==============
998
-
999
- * add block support to mocks. thanks dmeiz
1000
- * fixes for stub matching. thanks dmeiz
1001
- * don't do post_connection_check if verify mode is off
1002
- * check excon state for verify mode instead of checking OpenSSL
1003
- constants
1004
- * use RbConfig to find OS. thanks trym
1005
- * fixes for idempotent/retry. thanks lstoll
1006
-
1007
- 0.6.3 05/02/11
1008
- ==============
1009
-
1010
- * fixes for header parsing to allow whitespace after :. thanks
1011
- myronmarston
1012
- * get_header optimization. thanks nextmat
1013
- * rewind body on retry. thanks pweldon
1014
-
1015
- 0.6.2 04/11/11
1016
- ==============
1017
-
1018
- * fix block arguments for connection close. thanks ggoodale
1019
-
1020
- 0.6.1 04/05/11
1021
- ==============
1022
-
1023
- * add support for HTTPS proxies. thanks mrowe
1024
- * add support for http_proxy and https_proxy ENV variables. thanks
1025
- mrowe
1026
- * fix progress for requests with blocks that are chunked or connection
1027
- close
1028
-
1029
- 0.6.0 03/30/11
1030
- ==============
1031
-
1032
- * basic support for using proxies. thanks mattsa
1033
- * yield remaining/total bytes to streaming block. thanks nate
1034
- * minor optimizations/cleanup
1035
-
1036
- 0.5.8 03/24/11
1037
- ==============
1038
-
1039
- * fix regression where nil values in queries were ignored in 1.9.
1040
- thanks mattsa
1041
- * fix regression causing EOFError when making many connections in one
1042
- thread
1043
- * added tests to prevent both of the former from recurring
1044
-
1045
- 0.5.7 03/21/11
1046
- ==============
1047
-
1048
- * lazily connect, rather than connecting at #initialize
1049
- * add rough first pass at stubbing
1050
- * minor optimizations
1051
- * ssl client certification support. thanks thommay
1052
- * skip figuring out/setting Content-Length if one is supplied. Thanks
1053
- pweldon
1054
- * do not try to parse body for 205 and 304. Thanks seancribbs
1055
-
1056
- 0.5.6 02/19/11
1057
- ==============
1058
-
1059
- * only split headers by first ':' to allow for values with ':'. Thanks
1060
- mtodd!
1061
- * check a string instance for force_encoding, not class. Thanks
1062
- seancribbs!
1063
- * add benchmarks related to for vs each for enumerable. Thanks caius!
1064
- * fix default rake task to run tests
1065
-
1066
- 0.5.5 02/18/11
1067
- ==============
1068
-
1069
- * use local variables in response parsing, prevents keeping state
1070
- across requests
1071
-
1072
- 0.5.4 02/18/11
1073
- ==============
1074
-
1075
- * 204 should not attempt to parse body
1076
-
1077
-
1078
- 0.5.3 02/17/11
1079
- ==============
1080
-
1081
- * header comparison for responses is now case insensitive
1082
- * change to allow :idempotent => false to operate correctly
1083
- * misc cleanup