Skip to content

Commit 833243d

Browse files
authored
Merge pull request #2 from Shopify/limit-with-arguments
support arguments for throttled methods
2 parents 0360dda + d1e4309 commit 833243d

File tree

4 files changed

+14
-5
lines changed

4 files changed

+14
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# CHANGELOG
22

3+
## v1.0.1
4+
5+
- BUGFIX: support arguments for throttled methods
6+
37
## v1.0.0
48

59
- initial release

lib/limiter/mixin.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ def limit_method(method, rate:, interval: 60)
66
queue = RateQueue.new(rate, interval: interval)
77

88
mixin = Module.new do
9-
define_method(method) do
9+
define_method(method) do |*args|
1010
queue.shift
11-
super()
11+
super(*args)
1212
end
1313
end
1414

lib/limiter/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Limiter
4-
VERSION = '1.0.0'
4+
VERSION = '1.0.1'
55
end

test/limiter/mixin_test.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def initialize
2222
@ticks = 0
2323
end
2424

25-
def tick
26-
@ticks += 1
25+
def tick(count = 1)
26+
@ticks += count
2727
end
2828
end
2929

@@ -47,5 +47,10 @@ def test_original_method_is_called
4747

4848
assert_equal COUNT, @object.ticks
4949
end
50+
51+
def test_arguments_are_passed
52+
@object.tick 123
53+
assert_equal 123, @object.ticks
54+
end
5055
end
5156
end

0 commit comments

Comments
 (0)