ratelimit-ruby 0.1.2 → 0.1.3

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