ecfr 1.0.11 → 1.0.13

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4f0797427f53d66ef5b452b7cbed5e904bd0d40014b67bfa8da1605f4494ec1
4
- data.tar.gz: bcc927258c65452fa05834441efaf1e20cf7c6ce3a1d5f62f76fb8d00e65a386
3
+ metadata.gz: 0dfaa32b0ddc1df48587434c4ac948e073b91474e8bef1f709a206f06342db89
4
+ data.tar.gz: c7b6e16a5858ad9e0b4b1c12b062da7ca92491d2551eaad0654e8a84188291e8
5
5
  SHA512:
6
- metadata.gz: 36e1f0309682992dca52fb647d9b1f18e5359d06d4bc6775db8e9f70612c5f3455d7a7a7423e546a5e3ae394ad8d4c903895d0a712e7bd1d1be7d331f7e01b78
7
- data.tar.gz: cf200a1cd4c2fa7f6acdbe4b6e7fdf0d6be1a9e0f427ddfc721472d505e9450f8d0376547f8738373fb7cdbf73790c2abd906e3b4836b2db70fb0b3eb90d0934
6
+ metadata.gz: 861d6119026f3e701218612e4bff5af1caf885e907919da5e2fd2c85edaabec534618250e83ccc371fafac2aa4f4a5e6bf465819726395e3ab0351560243a7b6
7
+ data.tar.gz: 21352e8752996819180b84f8ff4530a1cf18c0901e05f5d7a99d9681f5c043f72f60f54d9742c3653fdf1bded88ecf4d4f5a890080d107dd409b7b6569decd4b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.0.13] - 2023-11-30
4
+ ### Updates
5
+ - Add additional keys to Agency response. Update search result to document agency filtering (70e4bcc1)
6
+
7
+ ## [1.0.12] - 2023-09-11
8
+ ### Updates
9
+ - Support retry-after header (e00ab2d)
10
+
3
11
  ## [1.0.11] - 2023-06-22
4
12
  ### Updates
5
13
  - 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)
@@ -5,6 +5,8 @@ module Ecfr
5
5
 
6
6
  attribute :display_name, desc: "official name of agency, including parent (if any)"
7
7
  attribute :name, desc: "official name of agency"
8
+ attribute :short_name, desc: "agency acronym"
9
+ attribute :slug, desc: "normalized, unique agency identifier in the eCFR system"
8
10
  attribute :sortable_name, desc: "sortable version of agency name"
9
11
 
10
12
  attribute :cfr_references, type: Array(Ecfr::Common::Hierarchy),
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
@@ -83,6 +83,7 @@ module Ecfr
83
83
  # Retrieve results of search query
84
84
  #
85
85
  # @param [<Hash>] args supported search parameters; supported params:
86
+ # @option args [Array] :agency_slugs limit search to portions of the CFR these agencies are currently associated with (see Ecfr::AdminService::Agency)
86
87
  # @option args [String] :date ISO date or 'current'
87
88
  # @option args [String] :last_modified_after ISO date
88
89
  # @option args [String] :last_modified_before ISO date
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.13"
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.13
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-11-30 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