proc 0.9.0 → 0.9.1

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: 46f47f39b1b2b4f495b59575a14f1d8df1d837eada9048562ed5455a3d0fbc06
4
- data.tar.gz: e93f11f26736d3504fc4e025be2fece6e9dafad9e66d6fac4c2d362470d3b207
3
+ metadata.gz: cbe8ec8f147808e160d44b09da719dafb03e329b3b1fb78f345300af4c9ab798
4
+ data.tar.gz: f7d81cecd2d9c6cf88e3b4f59bae7681e962bd2dd7d95fd6a1c1593f8245639c
5
5
  SHA512:
6
- metadata.gz: c82d1cb2697caf43077d2e1a909602401cb7bf8a8518be6f21d5160a38889d49aceb93d1d578c124ca8077dec21aa7e6b5fdec31ebb5e4137e64ab278e58e124
7
- data.tar.gz: ca6f582486efebd0817b30228e997da049c482e7c5b42f08b52128e76534d3da19080aa995e0124d15e011677f5af066c0310a7a67671788cf44cffc040e62d5
6
+ metadata.gz: e31c9f0c03adc5b2b82f0a2205cfb990f7be7bf529cf287580f2253b70425b63be00f19583838b93e15642f5ea2d3a1289d88065d6658f247f25b875d5bd8e3f
7
+ data.tar.gz: 9f44c4c22a636faa3f3032420a48e8aa8e7b92b18d2023115736612ef1b03736d967b770a43cf28e3ef426057b2ffa31a0398e627b51e271b6612cfadd2d0fea
data/lib/proc/client.rb CHANGED
@@ -55,20 +55,25 @@ class Proc
55
55
  Callable.new(proc, client: self)
56
56
  end
57
57
 
58
- def remaining
59
- unless defined?(@remaining)
60
- self["ping"].call
61
- end
58
+ def rate_limit
59
+ refresh_rate_limit
60
+ @rate_limit
61
+ end
62
62
 
63
- @remaining
63
+ def rate_limit_window
64
+ refresh_rate_limit
65
+ @rate_limit_window
64
66
  end
65
67
 
66
- def resets_at
67
- unless defined?(@resets_at)
68
+ def rate_limit_reset
69
+ refresh_rate_limit
70
+ @rate_limit_reset
71
+ end
72
+
73
+ private def refresh_rate_limit
74
+ unless defined?(@rate_limit_reset)
68
75
  self["ping"].call
69
76
  end
70
-
71
- @resets_at
72
77
  end
73
78
 
74
79
  DEFAULT_HEADERS = {
@@ -175,8 +180,21 @@ class Proc
175
180
 
176
181
  private def get_payload(proc:, headers:, body:)
177
182
  @internal.call(:post, build_uri(proc), headers: headers, body: MessagePack.pack(body)) do |response|
178
- @remaining = response.headers["x-rate-limit-remaining"].to_s.to_i
179
- @resets_at = Time.at(response.headers["x-rate-limit-reset"].to_s.to_i)
183
+ split_limit = response.headers["x-rate-limit"].to_s.split(";window=")
184
+
185
+ @rate_limit = split_limit[0].to_i
186
+
187
+ @rate_limit_window = case split_limit[1]
188
+ when "60"
189
+ :minute
190
+ when "1"
191
+ :second
192
+ end
193
+
194
+ @rate_limit_reset = if (reset = response.headers["x-rate-limit-reset"])
195
+ Time.at(reset.to_s.to_i)
196
+ end
197
+
180
198
  [response.status, response.headers, MessagePack.unpack(response.read)]
181
199
  end
182
200
  rescue
data/lib/proc/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Proc
4
- VERSION = "0.9.0"
4
+ VERSION = "0.9.1"
5
5
 
6
6
  def self.version
7
7
  VERSION
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: proc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-16 00:00:00.000000000 Z
11
+ date: 2021-03-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-http
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.1.0
33
+ version: 0.2.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.1.0
40
+ version: 0.2.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: msgpack
43
43
  requirement: !ruby/object:Gem::Requirement