module Redrate::Mixin

Public Instance Methods

limit_method(method, rate:, interval: 60) click to toggle source
Calls superclass method
# File lib/redrate/mixin.rb, line 5
def limit_method(method, rate:, interval: 60)
  queue = Queue.new(rate, interval: interval, key: "#{self.name}##{method}")

  mixin = Module.new do
    define_method(method) do |*args|
      queue.shift
      super(*args)
    end
  end

  prepend mixin
end