ecfr 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4f0797427f53d66ef5b452b7cbed5e904bd0d40014b67bfa8da1605f4494ec1
4
- data.tar.gz: bcc927258c65452fa05834441efaf1e20cf7c6ce3a1d5f62f76fb8d00e65a386
3
+ metadata.gz: 44ee6584017e9a07702bb19c563a67803534b903cc767ed4b0cc12195b672a4b
4
+ data.tar.gz: e695f87cb60ef043bff46563fe87a7d356fcf505665921a08cca959498469dd0
5
5
  SHA512:
6
- metadata.gz: 36e1f0309682992dca52fb647d9b1f18e5359d06d4bc6775db8e9f70612c5f3455d7a7a7423e546a5e3ae394ad8d4c903895d0a712e7bd1d1be7d331f7e01b78
7
- data.tar.gz: cf200a1cd4c2fa7f6acdbe4b6e7fdf0d6be1a9e0f427ddfc721472d505e9450f8d0376547f8738373fb7cdbf73790c2abd906e3b4836b2db70fb0b3eb90d0934
6
+ metadata.gz: 92adb0e55e0f28f73f131c718c708436a36c75f568132add0aa1d33203d5744fc02fee26ebf7b99c86ed6a72356c777691dd63eb4a719773b93f6d64f394e8ce
7
+ data.tar.gz: bc82b515d235b30fbb06096ab2a666df28c133c0d5b6dae0efd38f790c13d76f0e28130007c1840eacdbfb47230c26532fb770a089df9dfbc88d5fa0df449a65
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.12] - 2023-09-11
4
+ ### Updates
5
+ - Support retry-after header (e00ab2d)
6
+
3
7
  ## [1.0.11] - 2023-06-22
4
8
  ### Updates
5
9
  - Support more robust site notifications(24010c96)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ecfr (1.0.11)
4
+ ecfr (1.0.12)
5
5
  activemodel (~> 6.0)
6
6
  activesupport (~> 6.0)
7
7
  faraday (~> 2.0)
data/lib/ecfr/client.rb CHANGED
@@ -29,6 +29,15 @@ module Ecfr
29
29
  class Unauthorized < Error; end
30
30
  class UnknownStatusCode < Error; end
31
31
 
32
+ class RetryAfter < Error
33
+ attr_reader :delay
34
+
35
+ def initialize(record = nil, message = "", delay: nil)
36
+ @delay = delay.to_i
37
+ super(record, message)
38
+ end
39
+ end
40
+
32
41
  #
33
42
  # Faraday client configured for eCFR usage.
34
43
  #
@@ -313,6 +322,12 @@ module Ecfr
313
322
  raise RecordNotFound
314
323
  when 422
315
324
  raise InvalidRequest
325
+ when 429
326
+ if (retry_after = response.headers["retry-after"]).present?
327
+ raise RetryAfter.new(delay: retry_after.to_i)
328
+ else
329
+ raise UnknownStatusCode.new(errors, "Status code: #{response.status}")
330
+ end
316
331
  when 500
317
332
  raise ServerError.new(errors)
318
333
  else
data/lib/ecfr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ecfr
4
- VERSION = "1.0.11"
4
+ VERSION = "1.0.12"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecfr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peregrinator
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-22 00:00:00.000000000 Z
11
+ date: 2023-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -383,7 +383,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
383
383
  - !ruby/object:Gem::Version
384
384
  version: '0'
385
385
  requirements: []
386
- rubygems_version: 3.3.7
386
+ rubygems_version: 3.4.10
387
387
  signing_key:
388
388
  specification_version: 4
389
389
  summary: eCFR.gov API client