prop 2.6.1 → 2.7.0
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 +4 -4
- data/README.md +1 -1
- data/lib/prop/rate_limited.rb +3 -1
- data/lib/prop.rb +1 -1
- metadata +4 -74
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8d392029c77c453e5fc0d6a82fcb8401dc3ebabb01586b15bca7ab961df2d8f
|
4
|
+
data.tar.gz: ba93851562644df3cfea26c2d41d4e49fe52e4f7d5ca614313ab6cbd911c1293
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d41e52e89027cba93e67df82d5b65f654921c8c8c1b109e6eb6653f01d9a20fe493a9975fec89d817b886a25a3871a468a83ea3270fc94c94e2503905a04e772
|
7
|
+
data.tar.gz: f4024c8ae24cbca19eeade5491532e26ee270428a048a135c62ff43ffcbe7df4770bb1babb6424fc5b2c92634326162fa732be7aa548867dfcf66773a992ad63
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
# Prop
|
2
|
+
# Prop 
|
3
3
|
|
4
4
|
A gem to rate limit requests/actions of any kind.<br/>
|
5
5
|
Define thresholds, register usage and finally act on exceptions once thresholds get exceeded.
|
data/lib/prop/rate_limited.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module Prop
|
3
3
|
class RateLimited < StandardError
|
4
|
-
attr_accessor :handle, :cache_key, :retry_after, :description, :first_throttled
|
4
|
+
attr_accessor :handle, :cache_key, :retry_after, :description, :first_throttled, :threshold
|
5
5
|
|
6
6
|
def initialize(options)
|
7
7
|
self.handle = options.fetch(:handle)
|
@@ -12,6 +12,8 @@ module Prop
|
|
12
12
|
interval = options.fetch(:interval).to_i
|
13
13
|
self.retry_after = interval - Time.now.to_i % interval
|
14
14
|
|
15
|
+
self.threshold = options.fetch(:threshold)
|
16
|
+
|
15
17
|
super(options.fetch(:strategy).threshold_reached(options))
|
16
18
|
end
|
17
19
|
|
data/lib/prop.rb
CHANGED
metadata
CHANGED
@@ -1,85 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Morten Primdahl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rake
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: maxitest
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mocha
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: activesupport
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bump
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
11
|
+
date: 2022-10-14 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
83
13
|
description:
|
84
14
|
email: primdahl@me.com
|
85
15
|
executables: []
|
@@ -115,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
45
|
- !ruby/object:Gem::Version
|
116
46
|
version: '0'
|
117
47
|
requirements: []
|
118
|
-
rubygems_version: 3.1
|
48
|
+
rubygems_version: 3.0.3.1
|
119
49
|
signing_key:
|
120
50
|
specification_version: 4
|
121
51
|
summary: Gem for implementing rate limits.
|