delighted 1.6.0 → 1.7.0.rc1

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