module Raterr

Constants

AVAILABLE_PERIODS
DEFAULTS
InvalidStore
VERSION

Attributes

store[RW]

Public Class Methods

enforce(request, **options) click to toggle source
# File lib/raterr.rb, line 26
def enforce(request, **options)
  unless store.is_a?(Hash) || store.is_a?(::Redis)
    raise InvalidStore.new('Store is not valid, please refer to the documentation')
  end

  period = PeriodBuilder.call(request, options)
  period.allowed? ? period.proceed : period.rate_limit_exceeded
end