rails_rate_limiter 0.2.1 → 0.3.0

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: bf0a533c1192e113e76a12f6ef39c7ccb149acf02fb7a99b58d7fbcb98d223db
4
- data.tar.gz: '0497b4b08ff06fbe0f62c5d2426f03c8bccf8ccab172064f627bef56a8ff8d68'
3
+ metadata.gz: 0fd5bb10f6cff0e0d6d4d0a8d7c5ec288e4b33863674a31452976732bf02150e
4
+ data.tar.gz: 5dc24525086d671a6dac99b0c1031be29b006040242603e275fa80a213baaf8b
5
5
  SHA512:
6
- metadata.gz: 88645a319feabdc3baf70855f463a86bf6e2df978e39749f87da263d4b154a1522656d5712112a3ef2992a4bf6c45daa275b66f69537752eda18db7c213e4ec2
7
- data.tar.gz: 8dbbb42486361fd33ee1d5619e3e3bd3394fc87b04a31729a4a0aad322f9d11a3d9edf116464b5d12d9c372a44fec107fee3cf781ae49b422d453d0e6c1d618a
6
+ metadata.gz: 0f5ae74e6de4a4458af477975e3274f3d2a9afc434864d21c43a67d4ed800cbda6ada1a0fc319686a7e47f8a91d77abf236a75e35c9ab5cde54b05b82481e4cb
7
+ data.tar.gz: 1b8cd7c732e8f68ef24d8a22d97eb7466df179b5f3f745a4fe192c3ff73ce30d36a5bfd0eab7ceec683cd83475f109a3905a02d47afae5f949b8347dd07c3036
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_rate_limiter (0.2.1)
4
+ rails_rate_limiter (0.3.0)
5
5
  rails (>= 4.2)
6
6
  redis (>= 3.0)
7
7
 
@@ -53,11 +53,12 @@ GEM
53
53
  builder (3.2.3)
54
54
  coderay (1.1.2)
55
55
  concurrent-ruby (1.0.5)
56
+ connection_pool (2.3.0)
56
57
  crass (1.0.4)
57
58
  diff-lcs (1.3)
58
59
  erubi (1.7.1)
59
- globalid (0.4.2)
60
- activesupport (>= 4.2.0)
60
+ globalid (1.0.0)
61
+ activesupport (>= 5.0)
61
62
  i18n (1.0.1)
62
63
  concurrent-ruby (~> 1.0)
63
64
  loofah (2.2.2)
@@ -68,12 +69,14 @@ GEM
68
69
  marcel (0.3.3)
69
70
  mimemagic (~> 0.3.2)
70
71
  method_source (0.9.0)
71
- mimemagic (0.3.5)
72
- mini_mime (1.0.2)
72
+ mimemagic (0.3.10)
73
+ nokogiri (~> 1)
74
+ rake
75
+ mini_mime (1.1.2)
73
76
  mini_portile2 (2.3.0)
74
77
  minitest (5.11.3)
75
78
  mock_redis (0.17.3)
76
- nio4r (2.5.4)
79
+ nio4r (2.5.8)
77
80
  nokogiri (1.8.2)
78
81
  mini_portile2 (~> 2.3.0)
79
82
  pry (0.11.3)
@@ -107,7 +110,10 @@ GEM
107
110
  rake (>= 0.8.7)
108
111
  thor (>= 0.18.1, < 2.0)
109
112
  rake (10.5.0)
110
- redis (4.2.5)
113
+ redis (5.0.5)
114
+ redis-client (>= 0.9.0)
115
+ redis-client (0.11.1)
116
+ connection_pool
111
117
  rspec-core (3.7.1)
112
118
  rspec-support (~> 3.7.0)
113
119
  rspec-expectations (3.7.0)
@@ -125,18 +131,18 @@ GEM
125
131
  rspec-mocks (~> 3.7.0)
126
132
  rspec-support (~> 3.7.0)
127
133
  rspec-support (3.7.1)
128
- sprockets (4.0.2)
134
+ sprockets (4.1.1)
129
135
  concurrent-ruby (~> 1.0)
130
136
  rack (> 1, < 3)
131
- sprockets-rails (3.2.2)
132
- actionpack (>= 4.0)
133
- activesupport (>= 4.0)
137
+ sprockets-rails (3.4.2)
138
+ actionpack (>= 5.2)
139
+ activesupport (>= 5.2)
134
140
  sprockets (>= 3.0.0)
135
141
  thor (0.20.0)
136
142
  thread_safe (0.3.6)
137
143
  tzinfo (1.2.5)
138
144
  thread_safe (~> 0.1)
139
- websocket-driver (0.7.3)
145
+ websocket-driver (0.7.5)
140
146
  websocket-extensions (>= 0.1.0)
141
147
  websocket-extensions (0.1.5)
142
148
 
@@ -1,3 +1,3 @@
1
1
  module RailsRateLimiter
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -57,10 +57,10 @@ module RailsRateLimiter
57
57
 
58
58
  def check_rate_limits(strategy, limit, per, pattern, client, block)
59
59
  requester = compute_requester_pattern(pattern || request.remote_ip)
60
-
60
+ limiter = compute_limit(limit)
61
61
  strategy_class =
62
62
  "RailsRateLimiter::Strategies::#{strategy.classify}".constantize
63
- result = strategy_class.new(limit, per, requester, client).run
63
+ result = strategy_class.new(limiter, per, requester, client).run
64
64
  return unless result.limit_exceeded?
65
65
  # instance_exec is using here because simple block.call executes block in
66
66
  # a wrong context that leads to not preventing action execution after render
@@ -73,4 +73,10 @@ module RailsRateLimiter
73
73
  # a wrong context that leads to not preventing action execution after render
74
74
  "custom_#{instance_exec(&requester)}"
75
75
  end
76
+
77
+ def compute_limit(limit)
78
+ return limit unless limit.respond_to?(:call)
79
+
80
+ instance_exec(&limit)
81
+ end
76
82
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_rate_limiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Kotov
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-04 00:00:00.000000000 Z
11
+ date: 2022-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -108,7 +108,7 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description:
111
+ description:
112
112
  email:
113
113
  - rkotov93@gmail.com
114
114
  executables: []
@@ -136,7 +136,7 @@ homepage: https://github.com/rkotov93/rails_rate_limiter
136
136
  licenses:
137
137
  - MIT
138
138
  metadata: {}
139
- post_install_message:
139
+ post_install_message:
140
140
  rdoc_options: []
141
141
  require_paths:
142
142
  - lib
@@ -152,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
152
  version: '0'
153
153
  requirements: []
154
154
  rubygems_version: 3.0.3
155
- signing_key:
155
+ signing_key:
156
156
  specification_version: 4
157
157
  summary: Requests rate limiting library for Ruby on Rails
158
158
  test_files: []