411 lines
15 KiB
Markdown
411 lines
15 KiB
Markdown
# Changelog
|
|
|
|
## Master
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.4.1...master)
|
|
|
|
## 1.4.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.4.0...v1.4.1)
|
|
|
|
## 1.4.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.1.2...v1.4.0)
|
|
|
|
#### 1 feature
|
|
- Faraday adapter exceptions namespace compatibility with Faraday v1 ([@iMacTia](https://github.com/iMacTia) in [#616](https://github.com/typhoeus/typhoeus/pull/616))
|
|
|
|
#### 3 Others
|
|
- Yard warning fixes ([@olleolleolle](https://github.com/olleolleolle) in [#622](https://github.com/typhoeus/typhoeus/pull/622))
|
|
- Add more Ruby versions in CI matrix ([@olleolleolle](https://github.com/olleolleolle) in [#623](https://github.com/typhoeus/typhoeus/pull/623))
|
|
- Use of argument passed in function instead of `attr_reader` ([@v-kolesnikov](https://github.com/v-kolesnikov) in [#625](https://github.com/typhoeus/typhoeus/pull/625))
|
|
|
|
## 1.1.2
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.1.1...v1.1.2)
|
|
|
|
## 1.1.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.1.0...v1.1.1)
|
|
|
|
## 1.1.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.0.2...v1.1.0)
|
|
|
|
* Unless specified `Expect` header is set to be empty to avoid `100 continue`
|
|
to be set when using `PUT`
|
|
* Add global config option `Typhoeus::Config.proxy`
|
|
|
|
## 1.0.2
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.0.1...v1.0.2)
|
|
|
|
## 1.0.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v1.0.0...v1.0.1)
|
|
|
|
## 1.0.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.8.0...v1.0.0)
|
|
|
|
## 0.8.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.7.3...v0.8.0)
|
|
|
|
* `EasyFactory`: Reduced object allocations and method calls during deprecated
|
|
option handling and option sanitization.
|
|
([Tasos Laskos](https://github.com/zapotek))
|
|
* `Response` ([Tasos Laskos](https://github.com/zapotek))
|
|
* `Header`
|
|
* `#process_pair`: Halved `#set_value` calls.
|
|
* `#set_value`: Minimized `Hash` accesses.
|
|
* `#parse`: Use `String#start_with?` instead of `Regexp` match.
|
|
* `#process_line`: Optimized key/value sanitization.
|
|
* `Status`
|
|
* `#timed_out?`: Only return `true` when `#return_code` is `operation_timedout`.
|
|
|
|
## 0.7.3
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.7.2...v0.7.3)
|
|
|
|
* Add on_body callbacks individually to allow Ethon to recognize the return code
|
|
|
|
## 0.7.2
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.7.1...v0.7.2)
|
|
|
|
* Allow arrays to be passed to Expectation#and_return
|
|
([JP Moral](https://github.com/jpmoral))
|
|
|
|
* Added getter for `redirect_time` value.
|
|
([Adrien Jarthon](https://github.com/jarthod))
|
|
|
|
## 0.7.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.7.0...v0.7.1)
|
|
|
|
Bugfixes:
|
|
|
|
* Forking may cause libcurl sockets to be shared with child processes, causing HTTP requests to be interleaved
|
|
([Rolf Timmermans](https://github.com/rolftimmermans), [\#436](https://github.com/typhoeus/typhoeus/pull/426))
|
|
|
|
## 0.7.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.7.0.pre1...v0.7.0)
|
|
|
|
Bugfixes:
|
|
|
|
* Call on_headers and on_body when using stubbed responses.
|
|
|
|
## 0.7.0.pre1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.9...v0.7.0.pre1)
|
|
|
|
Enhancements:
|
|
|
|
* Improving timeout behavior and documentation. `no_signal` is now set per default!
|
|
([Jonas Wagner](https://github.com/jwagner), [\#398](https://github.com/typhoeus/typhoeus/pull/398))
|
|
|
|
## 0.6.8
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.7...v0.6.8)
|
|
|
|
Bugfixes:
|
|
|
|
* Fix Faraday 0.9 compatibility.
|
|
([Gleb Mazovetskiy](https://github.com/glebm), [\#357](https://github.com/typhoeus/typhoeus/pull/357))
|
|
* Fix Request#hash for different key orders.
|
|
([Matthew Schulkind](https://github.com/mschulkind), [\#344](https://github.com/typhoeus/typhoeus/pull/344))
|
|
|
|
Enhancements:
|
|
|
|
* Use an updated Ethon version. Note that from now on the `mime-types` is no longer a Ethon dependency. The gem will be still used if available to determine the mime type of a file which is uploaded. That means you have to have take care of the gem installation yourself.
|
|
* Use SVG for status badges in README.
|
|
([Sean Linsley](https://github.com/seanlinsley), [\#353](https://github.com/typhoeus/typhoeus/pull/353))
|
|
* Missing quotes in README example code.
|
|
([Jason R. Clark](https://github.com/jasonrclark), [\#351](https://github.com/typhoeus/typhoeus/pull/351))
|
|
* Specs for Faraday adapter.
|
|
([michaelavila](https://github.com/michaelavila), [\#348](https://github.com/typhoeus/typhoeus/pull/348))
|
|
* Clarify wording in README.
|
|
([Sean Linsley](https://github.com/seanlinsley), [\#347](https://github.com/typhoeus/typhoeus/pull/347))
|
|
* Make caching easier for non-memory caches.
|
|
([Matthew Schulkind](https://github.com/mschulkind), [\#345](https://github.com/typhoeus/typhoeus/pull/345))
|
|
* Spec refactoring.
|
|
([Matthew Schulkind](https://github.com/mschulkind), [\#343](https://github.com/typhoeus/typhoeus/pull/343))
|
|
|
|
## 0.6.7
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.6...v0.6.7)
|
|
|
|
Enhancements:
|
|
|
|
* Add response streaming.
|
|
([\#339](https://github.com/typhoeus/typhoeus/pull/339))
|
|
|
|
## 0.6.6
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.5...v0.6.6)
|
|
|
|
## 0.6.5
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.4...v0.6.5)
|
|
|
|
## 0.6.4
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.3...v0.6.4)
|
|
|
|
The changelog entries are coming soon!
|
|
|
|
## 0.6.3
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.2...v0.6.3)
|
|
|
|
Enhancements:
|
|
|
|
* Cache hydra per thread.
|
|
* Various documentation improvements.
|
|
([craiglittle](https://github.com/craiglittle))
|
|
* Add support for lazy construction of responses from stubbed requests.
|
|
([ryankindermann](https://github.com/ryankinderman), [\#275](https://github.com/typhoeus/typhoeus/pull/275))
|
|
|
|
## 0.6.2
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.1...v0.6.2)
|
|
|
|
Enhancements:
|
|
|
|
* Reintroduce a global cache.
|
|
* `Request#handled_response` falls back to the original response.
|
|
([turnerking](https://github.com/turnerking), [\#272](https://github.com/typhoeus/typhoeus/pull/272))
|
|
* When `Errors::NoStub` is raised the `url` is displayed.
|
|
([dschneider](https://github.com/dschneider), [\#276](https://github.com/typhoeus/typhoeus/pull/276))
|
|
* Make `Request#hash` consistent.
|
|
* Add `.rvmrc` and `ctags` to `.gitignore`.
|
|
([ryankindermann](https://github.com/ryankinderman), [\#274](https://github.com/typhoeus/typhoeus/pull/274))
|
|
|
|
## 0.6.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.6.0...v0.6.1)
|
|
|
|
Enhancements:
|
|
|
|
* Updated ethon version which allows to set multiple protocols.
|
|
|
|
## 0.6.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.5.4...v0.6.0)
|
|
|
|
Enhancements:
|
|
|
|
* `Request#url` now also contains the url parameters.
|
|
* Use updated ethon version which provides access to protocols and redir_protocols in response to [libcurl SASL buffer overflow vulnerability](http://curl.haxx.se/docs/adv_20130206.html)
|
|
|
|
Bugfixes:
|
|
|
|
* Corrected ssl options for the faraday adapter.
|
|
* The before hook now correctly returns the response.
|
|
([Mattias Putman](https://github.com/challengee), [\#268](https://github.com/typhoeus/typhoeus/pull/268))
|
|
* Benchmark is working again.
|
|
|
|
## 0.5.4
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.5.3...v0.5.4)
|
|
|
|
Enhancements:
|
|
|
|
* Make sure response_code is an integer.
|
|
* When setting an header through vcr or webmock it becomes a `Typhoeus::Response::Header`.
|
|
* Provide a Rack middleware to decode nested Typhoeus arrays properly.
|
|
([Dwayne Macgowan](https://github.com/dwaynemac), [\#224](https://github.com/typhoeus/typhoeus/issues/224))
|
|
* Handled response is available again.
|
|
* Rename parameter `url` to `base_url`. See discussion here: [\#250](https://github.com/typhoeus/typhoeus/issues/250).
|
|
([bkimble](https://github.com/bkimble), [\#256](https://github.com/typhoeus/typhoeus/pull/256))
|
|
* Provide O(1) header access.
|
|
* Work around ruby 1.8.7 limitations.
|
|
([Chris Johnson](https://github.com/findchris), [\#227](https://github.com/typhoeus/typhoeus/pull/227) )
|
|
* Provide symbol access.
|
|
|
|
## 0.5.3
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.5.2...v0.5.3)
|
|
|
|
Enhancements:
|
|
|
|
* When checking options in Expecation#matches? also consider Request#options.
|
|
|
|
Bugfixes:
|
|
|
|
* Do not break backwards compatibility with case insensitive headers access.
|
|
* Make sure hydra behaves correct in case of before hooks.
|
|
|
|
## 0.5.2
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.5.1...v0.5.2)
|
|
|
|
Enhancements:
|
|
|
|
* Do not check the return_code in Response#success? when response is mocked.
|
|
* Check for memoization, stubbing, before hooks are delayed to Hydra#run. It
|
|
was on Hydra#queue before and led to strange behavior because if the request
|
|
was stubbed, it was wrapped up in queue already. There was no way to add
|
|
callbacks after queue thatswhy. This is now different, since everything happens
|
|
in run, just as you expect.
|
|
|
|
## 0.5.1
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.5.0...v0.5.1)
|
|
|
|
Enhancements:
|
|
|
|
* Downcase header keys for easier access
|
|
( [\#227](https://github.com/typhoeus/typhoeus/issues/227) )
|
|
* Using an updated Ethon version.
|
|
|
|
## 0.5.0
|
|
|
|
[Full Changelog](http://github.com/typhoeus/typhoeus/compare/v0.4.2...v0.5.0)
|
|
|
|
Major Changes:
|
|
|
|
* Ethon integration
|
|
* Params are url params and a body is always a body for every request type
|
|
* The options you can set might have a slightly other names, as Ethon sticks to
|
|
libcurl names. See
|
|
[Easy.new](http://rubydoc.info/github/typhoeus/ethon/Ethon/Easy#initialize-instance_method)
|
|
for a description.
|
|
* Request parameter and body are properly encoded (only POST multiform body is not)
|
|
* No more header sanitizing. Before: `:headers => { 'user_agent' => 'Custom' }` was modified to
|
|
`:headers => { 'User-Agent' => 'Custom' }`
|
|
* `Typhoeus::Easy` and `Typhoeus::Multi` are now `Ethon::Easy` and `Ethon::Multi`
|
|
|
|
* Request shortcuts: `Typhoeus.get("www.google.de")`
|
|
* Global configuration:
|
|
```ruby
|
|
Typhoeus.configure do |config|
|
|
config.verbose = true
|
|
config.memoize = true
|
|
end
|
|
```
|
|
* No more `Response#headers_hash`, instead `Response#headers` returning the last
|
|
header and response#redirections returning the responses with headers
|
|
generated through redirections
|
|
* Instead of defining the same callbacks on every request, you can define global callbacks:
|
|
```ruby
|
|
Typhoeus.on_complete { p "yay" }
|
|
```
|
|
* The stubbing interface changed slightly. You now have the same syntax as for requests:
|
|
```ruby
|
|
Typhoeus.stub(url, options).and_return(response)
|
|
```
|
|
* The following things were removed because they do not seemed to be used at all. Ping me if you disagree!
|
|
* `Typhoeus::Filter`
|
|
* `Typhoeus::Remote`
|
|
* `Typhoeus::RemoteMethod`
|
|
* `Typhoeus::RemoteProxyObject`
|
|
* build in cache interface
|
|
|
|
Enhancements:
|
|
|
|
* Documentation
|
|
( [Alex P](https://github.com/ifesdjeen), [\#188](https://github.com/typhoeus/typhoeus/issues/188) )
|
|
* Request#on\_complete can hold multiple blocks.
|
|
* Request#eql? recognizes when header/params/body has a different order, but still same keys and values
|
|
( [Alex P](https://github.com/ifesdjeen), [\#194](https://github.com/typhoeus/typhoeus/issues/194) )
|
|
|
|
Bug Fixes:
|
|
|
|
* Zero bytes in strings are escaped for libcurl
|
|
* Add support for socks5 hostname proxy type
|
|
( [eweathers](https://github.com/eweathers), [\#183](https://github.com/typhoeus/typhoeus/issues/183) )
|
|
* Post body is encoded
|
|
( [Rohan Deshpande](https://github.com/rdeshpande), [\#143](https://github.com/typhoeus/typhoeus/issues/143) )
|
|
* Set default user agent
|
|
( [Steven Shingler](https://github.com/sshingler), [\#176](https://github.com/typhoeus/typhoeus/issues/176) )
|
|
|
|
## 0.4.2
|
|
* A header hotfix
|
|
|
|
## 0.4.1
|
|
* Fix verifypeer and verifyhost options
|
|
* Fix header sending
|
|
|
|
## 0.4.0
|
|
* Make a GET even when a body is given
|
|
* Deprecated User Agent setter removed
|
|
* Allow cache key basis overwrite (John Crepezzi, #147)
|
|
* FFI integration (Daniel Cavanagh, #151)
|
|
* Refactor upload code (Marnen Laibow-Koser, #152)
|
|
* Fix travis-ci build (Ezekiel Templin, #160)
|
|
|
|
## 0.3.3
|
|
* Make sure to call the Easy::failure callback on all non-success http response codes, even invalid ones. [balexis]
|
|
* Use bytesize instead of length to determine Content-Length [dlamacchia]
|
|
* Added SSL version option to Easy/Request [michelbarbosa/dbalatero]
|
|
|
|
## 0.3.2
|
|
* Fix array params to be consistent with HTTP spec [gridaphobe]
|
|
* traversal\_to\_params\_hash should use the escape option [itsmeduncan]
|
|
* Fix > 1024 open file descriptors [mschulkind]
|
|
* Fixed a bug with internally queued requests being dropped [mschulkind]
|
|
* Use gemspec in bundler to avoid duplication [mschulkind]
|
|
* Run internally queued requests in FIFO order [mschulkind]
|
|
* Moved Typhoeus::VERSION to a separate file, to fix rake build\_native [mschulkind]
|
|
* Fixed problems related to put requests with empty bodies [skaes, GH-84]
|
|
* Added CURLOPT\_INTERFACE option via Request#interface=. [spiegela]
|
|
* Added Tempfile support to Form#process! [richievos]
|
|
* Hydra won't forget to accept gzip/deflate encoding [codesnik]
|
|
* Accept and convert strings to integers in Typhoeus::Request#initialize for timeout/cache\_timeout/connect\_timeout values when using ruby 1.9.x. [djnawara]
|
|
* Added interface for registering stub finders [myronmarston]
|
|
* Fixed header stubbing [myronmarston]
|
|
* Added PKCS12 support [jodell]
|
|
* Make a request with handlers marshallable [bernerdschaefer]
|
|
* Upgraded to RSpec 2 [bernerdschaefer]
|
|
* Fix HTTP status edge-case [balexis]
|
|
* Expose primary\_ip to easy object [balexis]
|
|
|
|
## 0.2.4
|
|
* Fix form POSTs to only use multipart for file uploads, otherwise use application/x-www-form-urlencoded [dbalatero]
|
|
|
|
## 0.2.3
|
|
* Code duplication in Typhoeus::Form led to nested URL param errors on POST only. Fixed [dbalatero]
|
|
|
|
## 0.2.2
|
|
* Fixed a problem with nested URL params encoding incorrectly [dbalatero]
|
|
|
|
## 0.2.1
|
|
* Added extended proxy support [Zapotek, GH-46]
|
|
* eliminated compile time warnings by using proper type declarations [skaes, GH-54]
|
|
* fixed broken calls to rb\_raise [skaes, GH-54]
|
|
* prevent leaking of curl easy handles when exceptions are raised (either from typhoeus itself or user callbacks) [skaes, GH-54]
|
|
* fixed Easy#timed\_out? using curl return codes [skaes, GH-54]
|
|
* provide curl return codes and corresponding curl error messages on classes Easy and Request [skaes, GH-54]
|
|
* allow VCR to whitelist hosts in Typhoeus stubbing/mocking [myronmarston, GH-57]
|
|
* added timed\_out? documentation, method to Response [dbalatero, GH-34]
|
|
* added abort to Hydra to prematurely stop a hydra.run [Zapotek]
|
|
* added file upload support for POST requests [jtarchie, GH-59]
|
|
|
|
## 0.2.0
|
|
* Fix warning in Request#headers from attr\_accessor
|
|
* Params with array values were not parsing into the format that rack expects [GH-39, smartocci]
|
|
* Removed Rack as a dependency [GH-45]
|
|
* Added integration hooks for VCR!
|
|
|
|
## 0.1.31
|
|
* Fixed bug in setting compression encoding [morhekil]
|
|
* Exposed authentication control methods through Request interface [morhekil]
|
|
|
|
## 0.1.30
|
|
* Exposed CURLOPT\_CONNECTTIMEOUT\_MS to Requests [balexis]
|
|
|
|
## 0.1.29
|
|
* Fixed a memory corruption with using CURLOPT\_POSTFIELDS [gravis,
|
|
32531d0821aecc4]
|
|
|
|
## 0.1.28
|
|
* Added SSL cert options for Typhoeus::Easy [GH-25, gravis]
|
|
* Ported SSL cert options to Typhoeus::Request interface [gravis]
|
|
* Added support for any HTTP method (purge for Varnish) [ryana]
|
|
|
|
## 0.1.27
|
|
* Added rack as dependency, added dev dependencies to Rakefile [GH-21]
|