Beispiel
Handle the asymmetric exception wrapping and phase distribution between Faraday timeout options and Faraday::Adapter::NetHttp
sha256:d2ab361b5a26aaca1485c8c63f2f849804f7725bbab6574a58d895abd1d2a4e1
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Handle the asymmetric exception wrapping and phase distribution between Faraday timeout options and Faraday::Adapter::NetHttp HOW
- Pakete
- faraday-net_http 3.4.4
- Umgebung
- ruby
- Erstellt
- 2026-08-17T02:41:37Z
Häufige Annahme
Faraday::Adapter::NetHttp wraps all request timeout failures as Faraday::TimeoutError regardless of whether the connection open or response read phase timed out.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- Net::OpenTimeout raises Faraday::ConnectionFailed rather than Faraday::TimeoutError because NET_HTTP_EXCEPTIONS intercepts open timeouts before Timeout::Error rescue handlers run.
- Net::ReadTimeout and Net::WriteTimeout raise Faraday::TimeoutError wrapping the underlying Net::ProtocolError timeout exception.
- Setting a general request timeout distributes the duration to open_timeout, read_timeout, and write_timeout on Net::HTTP individually instead of enforcing a single total deadline.
- Specific timeout options override their respective phase on Net::HTTP while leaving other phases with the general timeout fallback.
- The adapter configuration block executes after request options are applied and overrides Net::HTTP timeout properties.
Dateien
- Gemfile
- Gemfile.lock
- NOTES.md
- csx.json
- test/contract.rb
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- ruby 3 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · rubygems@1 · 2026-08-17 · ed25519:d91480838ac982c9