35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/rate_limiter/on_create_record.rb', line 35
def rate_limit(limiter_method = nil)
limiter_method = limiter_method || :default_rate_limiter
self.after_create do |*args|
next if @rate_limits_disabled
if rate_limiter = public_send(limiter_method)
rate_limiter.performed!
@performed ||= {}
@performed[limiter_method] = true
end
end
self.after_destroy do
next if @rate_limits_disabled
if rate_limiter = public_send(limiter_method)
rate_limiter.rollback!
end
end
self.after_rollback do
next if @rate_limits_disabled
if rate_limiter = public_send(limiter_method)
if @performed.present? && @performed[limiter_method]
rate_limiter.rollback!
@performed[limiter_method] = false
end
end
end
end
|