ruby_rate_limiter 2.0.3 → 2.0.4

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
  SHA256:
3
- metadata.gz: b60324c24d3fc51e14f066637e25ff4ac9b4ada858e58847faf3038412071228
4
- data.tar.gz: f93cf75cb76aa970caa2d09c49899ebbb13a637fad485d4bf8e4e804a0af6ff4
3
+ metadata.gz: fac1847e631354a2a9afe2bf545b46799580d0eb5504afe0a487acb34fb7e9cd
4
+ data.tar.gz: e1759f509fd0bd3ae66f4f40cdd1380816ae874ff96ac9988e97cf0a55cd74ce
5
5
  SHA512:
6
- metadata.gz: eeeaca8c796fd0431016764af4c6c6d7a4535bbac91a93d616fa7e4dbc196d21b13667fa5e1f612d0226b47431925dad7b7dbc642e7312122123d56a4a971ed7
7
- data.tar.gz: 6d18b90e23f0b6b0597cd27a62b3ce7e05c8d5aa01fce90c00d6a96df939bf9d2b7fbc63496343bb3382a84760a71d4a0c44ad8eb59fd85e22feaf168f5e6aa3
6
+ metadata.gz: f4d956f68015d77952ace49a10cf4268775d4152d3a7710fba49b9b7e4c715941548a0d8c5a4e097abd7871ab8239f865ca2ad30afbad3f475e65fdeb0914616
7
+ data.tar.gz: 71c1ea5ab146f05962b467a159c6fb317482dc75b4c583d4f3fab2cbdb2bc757db2b2270fe1797a0c339d4c5f48015ce53b782710adde9d4fd9e8568a169c695
@@ -1,8 +1,3 @@
1
- # lib/ruby_rate_limiter/token_bucket.rb
2
- require 'forwardable'
3
- require_relative 'storage/abstract_storage'
4
- require_relative 'storage/redis_storage'
5
-
6
1
  module RubyRateLimiter
7
2
  class TokenBucket
8
3
  extend Forwardable
@@ -35,6 +30,7 @@ module RubyRateLimiter
35
30
  refill_tokens
36
31
  tokens = get_bucket_size
37
32
  puts "Allow request: tokens before = #{tokens}" # Debugging line
33
+
38
34
  return false if tokens < 1
39
35
 
40
36
  update_bucket_size(tokens - 1)
@@ -46,33 +42,30 @@ module RubyRateLimiter
46
42
 
47
43
  def get_bucket_size
48
44
  size = (@storage.get("#{@user_id}_tokens") || @bucket_size).to_i
49
- puts "get_bucket_size: #{@user_id}_tokens = #{size}"
45
+ puts "get_bucket_size: #{@user_id}_tokens = #{size}" # Debugging line
50
46
  size
51
47
  end
52
48
 
53
49
  def get_last_refill_time
54
- time = (@storage.get("#{@user_id}_last_refill") || Time.now.to_f).to_f
55
- puts "get_last_refill_time: #{@user_id}_last_refill = #{time}"
56
- time
50
+ last_refill = (@storage.get("#{@user_id}_last_refill") || Time.now.to_f).to_f
51
+ puts "get_last_refill_time: #{@user_id}_last_refill = #{last_refill}" # Debugging line
52
+ last_refill
57
53
  end
58
54
 
59
55
  def update_bucket_size(tokens)
60
- puts "update_bucket_size: #{@user_id}_tokens = #{tokens}"
61
56
  @storage.set("#{@user_id}_tokens", tokens)
62
57
  end
63
58
 
64
59
  def update_last_refill_time(timestamp)
65
60
  @storage.set("#{@user_id}_last_refill", timestamp)
66
- puts "update_last_refill_time: #{@user_id}_last_refill = #{timestamp}"
67
61
  end
68
62
 
69
63
  def refill_tokens
70
64
  current_time = Time.now.to_f
71
65
  last_refill_time = get_last_refill_time
72
66
  elapsed_time = current_time - last_refill_time
73
-
74
67
  new_tokens = (elapsed_time * @refill_rate_per_second).to_i
75
- puts "Refill tokens: elapsed_time = #{elapsed_time}, new_tokens = #{new_tokens}" # Debugging line
68
+ puts "Refill tokens: current_time = #{current_time}, last_refill_time = #{last_refill_time}, elapsed_time = #{elapsed_time}, new_tokens = #{new_tokens}" # Debugging line
76
69
 
77
70
  return if new_tokens <= 0
78
71
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RateLimiter
4
- VERSION = "2.0.3"
4
+ VERSION = "2.0.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_rate_limiter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mutuba