class RateLimiter::Validator

Validates whether a model's rate limit has been exceeded.

Public Class Methods

new(record, options = {}) click to toggle source
# File lib/rate_limiter/validator.rb, line 6
def initialize(record, options = {})
  @record = record
  @options = options
end

Public Instance Methods

validate() click to toggle source
# File lib/rate_limiter/validator.rb, line 11
def validate
  return unless @record.rate_limit_exceeded?

  @record.errors.add(:base, I18n.t('rate_limiter.errors.rate_limit_exceeded', object_type: object_type, default: default_error_message))

  false
end

Private Instance Methods

default_error_message() click to toggle source
# File lib/rate_limiter/validator.rb, line 21
def default_error_message
  "You cannot create a new #{object_type} yet."
end
object_type() click to toggle source
# File lib/rate_limiter/validator.rb, line 25
def object_type
  @record.class.name
end