delighted 1.6.0 → 1.7.0.rc1

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
  SHA1:
3
- metadata.gz: 5c28520aa4ae06801122ea66abb81e9e6f3128cb
4
- data.tar.gz: f83f3f26990f39e39e8291c9fdeb20fe2133bd9d
3
+ metadata.gz: 7a52df44b1402d8a586e07ac6277e62088fccf77
4
+ data.tar.gz: 55967247930e41a650c6265b6446ee16054f09e0
5
5
  SHA512:
6
- metadata.gz: efc632e1ca316fe1e8721284c1c6409bc9d99ef2a03e5f665fa8b22e7359758a5cbaa7429e5ed27a13e4f9bb64e45c7777a6ce1ec16f35cd608d7348f2a7886e
7
- data.tar.gz: 044252f5a7349db4e1a6f5306dc8d05992ec3af18df4a63273d3f889449ab28addeeb52e313a26e63865459eecdc9c1bc4e8ea1a8c37432e7ce69e4f455722fd
6
+ metadata.gz: d779c8bb232361aaa4658d21aeb1af3f09ad246fa9f7fabf6e6cfc521b95dcec9cd4fc0a6ab2be4c4fdb0c433bc0b84ec19683746bfe6d957f6eddebf3c862f9
7
+ data.tar.gz: d3b37eae025ea14583932e735d659aa90e705ddaf8b78151b37f00e1acfc4b342fafb3f0ce10a116f1b40b2d9e467962393cc9fcea57843bb0db12d3e270e94f
@@ -1,3 +1,10 @@
1
+ ## 1.7.0.rc1 (2017-10-03)
2
+
3
+ Features:
4
+
5
+ - Add `Delighted::RateLimitedError#retry_after`.
6
+ - Add `Delighted::Error#response`.
7
+
1
8
  ## 1.6.0 (2017-09-27)
2
9
 
3
10
  Features:
data/README.md CHANGED
@@ -194,3 +194,12 @@ metrics_from_custom_shared_client = Delighted::Metrics.retrieve
194
194
  4. Commit your changes (`git commit -am 'Add some feature'`)
195
195
  5. Push to the branch (`git push origin my-new-feature`)
196
196
  6. Create new Pull Request
197
+
198
+ ## Releasing
199
+
200
+ 1. Bump the version in `lib/delighted/version.rb`.
201
+ 2. Update the README and CHANGELOG as needed.
202
+ 3. Tag the commit for release.
203
+ 4. Build the gem with `gem build delighted.gemspec`.
204
+ 5. Install locally to verify `gem install PATH_TO_GENERATED_GEM.gem`.
205
+ 6. Push to Rubygems.org with `gem push PATH_TO_GENERATED_GEM.gem`.
@@ -1,5 +1,7 @@
1
1
  module Delighted
2
2
  class Error < StandardError
3
+ attr_reader :response
4
+
3
5
  def initialize(response)
4
6
  @response = response
5
7
  end
@@ -23,6 +25,10 @@ module Delighted
23
25
 
24
26
  class RateLimitedError < Error
25
27
  # 429, rate limited
28
+
29
+ def retry_after
30
+ response.retry_after
31
+ end
26
32
  end
27
33
 
28
34
  class GeneralAPIError < Error
@@ -11,5 +11,11 @@ module Delighted
11
11
  def content_type
12
12
  @headers.values_at('content-type', 'Content-Type')[0]
13
13
  end
14
+
15
+ def retry_after
16
+ if value = @headers["Retry-After"]
17
+ value.to_i
18
+ end
19
+ end
14
20
  end
15
21
  end
@@ -1,3 +1,3 @@
1
1
  module Delighted
2
- VERSION = "1.6.0"
2
+ VERSION = "1.7.0.rc1"
3
3
  end
@@ -7,11 +7,18 @@ class Delighted::ClientTest < Delighted::TestCase
7
7
  end
8
8
 
9
9
  def test_handles_rate_limited_response
10
- response = Delighted::HTTPResponse.new(429, {}, Delighted::JSON.dump({ status: 429, message: "Too Many Requests" }
10
+ response = Delighted::HTTPResponse.new(429, { "Retry-After" => "10" }, Delighted::JSON.dump({ :status => 429, :message => "Too Many Requests" }
11
11
  ))
12
12
  mock_http_adapter.stubs(:request).returns(response)
13
13
 
14
- assert_raises(Delighted::RateLimitedError) { Delighted.shared_client.get_json("/foo") }
14
+ assert_raises(Delighted::RateLimitedError) do
15
+ begin
16
+ Delighted.shared_client.get_json("/foo")
17
+ rescue Delighted::RateLimitedError => e
18
+ assert_equal 10, e.retry_after
19
+ raise
20
+ end
21
+ end
15
22
  end
16
23
  end
17
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delighted
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.7.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Dodwell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-27 00:00:00.000000000 Z
11
+ date: 2017-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -118,9 +118,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
118
118
  version: '0'
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ">="
121
+ - - ">"
122
122
  - !ruby/object:Gem::Version
123
- version: '0'
123
+ version: 1.3.1
124
124
  requirements: []
125
125
  rubyforge_project:
126
126
  rubygems_version: 2.6.13