Sha256: 69676c3ebc68973d5279a5e237beb28d497a9a85ae27f14db27eb17155ca7ba1
Contents?: true
Size: 580 Bytes
Versions: 1
Compression:
Stored size: 580 Bytes
Contents
require 'raterr/version' require 'raterr/period_builder' require 'raterr/mixin' require 'raterr/hour' require 'raterr/day' require 'raterr/minute' module Raterr AVAILABLE_PERIODS = [:minute, :hour, :day, :week, :month].freeze DEFAULTS = { max: 100, code: 429, message: "Rate limit exceeded. Try again in %{time}.", period: :hour }.freeze class << self attr_accessor :store def enforce(request, **options) period = PeriodBuilder.call(request, options) period.allowed? ? period.proceed : period.rate_limit_exceeded end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
raterr-0.1.0 | lib/raterr.rb |