ratelimit-ruby 0.1.2 → 0.1.3

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: ba840b0a4094c38901cdf325bcc69fdc3f6a864e
4
- data.tar.gz: 15d19e332a9ed5bd77ec0edd4daa326e157e2a76
3
+ metadata.gz: 62a8691b15825c4fda93b482d2cb590ab8e49ceb
4
+ data.tar.gz: c6023d1fbeb155ae6ec9f5a748c9e8a9be598445
5
5
  SHA512:
6
- metadata.gz: fa3c25ee0c3ac084e7bc2baf30b896b4cfadf20a0e4e1d35929ada2d4a5c2b0c3f755f9345b953ea162a1d4908a179a209fde19cbb6390186cdcb4fbb3fb40ee
7
- data.tar.gz: 262baa3cd4d504c389c2ae6fad3c4c62f6402f1cfd03d471c849d1eb6398c0a4874cf199e4f9c49b6134135840cde011d4046c00d5ef4a44228611d3f93c9829
6
+ metadata.gz: b93208de32d63e81ee581c3cb90a97b7637d2a9ced00cf75e8be890ef2999637fa850d8de91ba03d7c50e7c36bb2f15451a27ce3c7d4d7662b8e9768b6ad56bd
7
+ data.tar.gz: d628b0e0994b06935543c69333b714acc1a1dacfe451c4e65231f8656b0dd7da0c1e934ae3da5bfce6b135199e1dbc87ce99d0f7349e51397aaa025fbcbadc05
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -27,20 +27,22 @@ module RateLimit
27
27
  end
28
28
 
29
29
 
30
- def create_concurrency_limit(group, concurrent, timeout_seconds)
31
- upsert_concurrency_limit(group, concurrent, timeout_seconds, method: :post)
30
+ def create_returnable_limit(group, total_tokens, seconds_to_refill_one_token)
31
+ upsert_returnable_limit(group, total_tokens, seconds_to_refill_one_token, method: :post)
32
32
  end
33
33
 
34
- def upsert_concurrency_limit(group, concurrent, timeout_seconds, method: :put)
35
- recharge_rate = (24*60*60)/timeout_seconds
34
+ def upsert_returnable_limit(group, total_tokens, seconds_to_refill_one_token, method: :put)
35
+ recharge_rate = (24*60*60)/seconds_to_refill_one_token
36
36
  recharge_policy = DAILY_ROLLING
37
- upsert(LimitDefinition.new(group, recharge_rate, recharge_policy, true, concurrent), method)
37
+ upsert(LimitDefinition.new(group, recharge_rate, recharge_policy, true, total_tokens), method)
38
38
  end
39
39
 
40
+ # create only. does not overwrite if it already exists
40
41
  def create_limit(group, limit, policy, burst: nil)
41
42
  upsert(LimitDefinition.new(group, limit, policy, false, burst || limit), :post)
42
43
  end
43
44
 
45
+ # upsert. overwrite whatever is there
44
46
  def upsert_limit(group, limit, policy, burst: nil)
45
47
  upsert(LimitDefinition.new(group, limit, policy, false, burst || limit), :put)
46
48
  end
@@ -78,7 +80,7 @@ module RateLimit
78
80
 
79
81
 
80
82
  def return(limit_result)
81
- @conn.post '/api/v1/limitreturn',
83
+ result = @conn.post '/api/v1/limitreturn',
82
84
  { enforcedGroup: limit_result.enforcedGroup,
83
85
  amount: limit_result.amount }.to_json
84
86
  handle_failure(result) unless result.success?
@@ -95,7 +97,13 @@ module RateLimit
95
97
  policyName: limit_definition.policy,
96
98
  returnable: limit_definition.returnable }.to_json
97
99
  result= @conn.send(method, '/api/v1/limits', to_send)
98
- handle_failure(result) unless result.success?
100
+ if !result.success?
101
+ if method == :put
102
+ handle_failure(result)
103
+ elsif result.status != 409 # conflicts routinely expected on create
104
+ handle_failure(result)
105
+ end
106
+ end
99
107
  rescue => e
100
108
  handle_error(e)
101
109
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: ratelimit-ruby 0.1.2 ruby lib
5
+ # stub: ratelimit-ruby 0.1.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "ratelimit-ruby"
9
- s.version = "0.1.2"
9
+ s.version = "0.1.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Jeff Dwyer"]
14
- s.date = "2016-12-16"
14
+ s.date = "2017-01-16"
15
15
  s.description = "rate limit your ruby"
16
16
  s.email = "jdwyah@gmail.com"
17
17
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratelimit-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Dwyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-16 00:00:00.000000000 Z
11
+ date: 2017-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday