Skip to content

Latest commit

 

History

History
394 lines (280 loc) · 14.5 KB

CHANGELOG.md

File metadata and controls

394 lines (280 loc) · 14.5 KB

Changelog

Master

Full Changelog

1.1.2

Full Changelog

1.1.1

Full Changelog

1.1.0

Full Changelog

  • 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

1.0.1

Full Changelog

1.0.0

Full Changelog

0.8.0

Full Changelog

  • EasyFactory: Reduced object allocations and method calls during deprecated option handling and option sanitization. (Tasos Laskos)
  • Response (Tasos Laskos)
    • 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

  • Add on_body callbacks individually to allow Ethon to recognize the return code

0.7.2

Full Changelog

  • Allow arrays to be passed to Expectation#and_return (JP Moral)

  • Added getter for redirect_time value. (Adrien Jarthon)

0.7.1

Full Changelog

Bugfixes:

  • Forking may cause libcurl sockets to be shared with child processes, causing HTTP requests to be interleaved (Rolf Timmermans, #436)

0.7.0

Full Changelog

Bugfixes:

  • Call on_headers and on_body when using stubbed responses.

0.7.0.pre1

Full Changelog

Enhancements:

  • Improving timeout behavior and documentation. no_signal is now set per default! (Jonas Wagner, #398)

0.6.8

Full Changelog

Bugfixes:

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, #353)
  • Missing quotes in README example code. (Jason R. Clark, #351)
  • Specs for Faraday adapter. (michaelavila, #348)
  • Clarify wording in README. (Sean Linsley, #347)
  • Make caching easier for non-memory caches. (Matthew Schulkind, #345)
  • Spec refactoring. (Matthew Schulkind, #343)

0.6.7

Full Changelog

Enhancements:

  • Add response streaming. (#339)

0.6.6

Full Changelog

0.6.5

Full Changelog

0.6.4

Full Changelog

The changelog entries are coming soon!

0.6.3

Full Changelog

Enhancements:

  • Cache hydra per thread.
  • Various documentation improvements. (craiglittle)
  • Add support for lazy construction of responses from stubbed requests. (ryankindermann, #275)

0.6.2

Full Changelog

Enhancements:

  • Reintroduce a global cache.
  • Request#handled_response falls back to the original response. (turnerking, #272)
  • When Errors::NoStub is raised the url is displayed. (dschneider, #276)
  • Make Request#hash consistent.
  • Add .rvmrc and ctags to .gitignore. (ryankindermann, #274)

0.6.1

Full Changelog

Enhancements:

  • Updated ethon version which allows to set multiple protocols.

0.6.0

Full Changelog

Enhancements:

Bugfixes:

  • Corrected ssl options for the faraday adapter.
  • The before hook now correctly returns the response. (Mattias Putman, #268)
  • Benchmark is working again.

0.5.4

Full Changelog

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, #224)
  • Handled response is available again.
  • Rename parameter url to base_url. See discussion here: #250. (bkimble, #256)
  • Provide O(1) header access.

0.5.3

Full Changelog

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

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

Enhancements:

  • Downcase header keys for easier access ( #227 )
  • Using an updated Ethon version.

0.5.0

Full Changelog

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

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:
Typhoeus.on_complete { p "yay" }
  • The stubbing interface changed slightly. You now have the same syntax as for requests:
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, #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, #194 )

Bug Fixes:

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]