excon 0.62.0 → 0.92.3

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 (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