Module: Protection::RateLimiting::ClassMethods

Defined in:
app/controllers/concerns/aikotoba/protection/rate_limiting.rb

Instance Method Summary collapse

Instance Method Details

#available_rails_rate_limiting?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'app/controllers/concerns/aikotoba/protection/rate_limiting.rb', line 27

def available_rails_rate_limiting?
  Rails::VERSION::MAJOR >= 8
end

#rate_limit(**options) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/concerns/aikotoba/protection/rate_limiting.rb', line 16

def rate_limit(**options)
  return if options.empty? # Allow empty config (disabled by default)

  if available_rails_rate_limiting?
    super
  else
    raise Errors::NotAvailableException,
      "Rate limiting requires Rails 8+. Current version: #{Rails::VERSION::STRING}"
  end
end