Module: ActionLimiter

Defined in:
lib/action_limiter.rb,
lib/action_limiter/config.rb,
lib/action_limiter/scripts.rb,
lib/action_limiter/version.rb,
lib/action_limiter/middleware.rb,
lib/action_limiter/rails/engine.rb,
lib/action_limiter/token_bucket.rb,
lib/action_limiter/middleware/ip.rb,
lib/action_limiter/instrumentation.rb

Defined Under Namespace

Modules: Middleware, Rails Classes: Config, TokenBucket

Constant Summary collapse

SCRIPTS =
Dir.glob("#{__dir__}/scripts/*.lua").each_with_object({}) do |script_path, object|
  script_name = File.basename(script_path, '.lua').to_sym

  object[script_name] = File.read(script_path).freeze
end.freeze
VERSION =

The current version number

'1.0.0'

Class Method Summary collapse

Class Method Details

.configure {|Config.instance| ... } ⇒ Object

Perform configuration

Yields:

Author:

  • Maddie Schipper

Since:

  • 1.0.0



20
21
22
# File 'lib/action_limiter.rb', line 20

def self.configure
  yield(Config.instance) if block_given?
end

.instrument(name, payload = {}) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/action_limiter/instrumentation.rb', line 12

def self.instrument(name, payload = {})
  if defined?(ActiveSupport::Notifications)
    ActiveSupport::Notifications.instrument(name, payload) { yield(payload) }
  else
    yield(payload)
  end
end

.with_redis_connectionObject



38
39
40
# File 'lib/action_limiter/config.rb', line 38

def self.with_redis_connection(...)
  Config.instance.redis.with(...)
end