class RateLimiter::ModelConfig
Sets up RateLimiter
configuration for an ActiveRecord model.
Public Class Methods
new(model_class)
click to toggle source
# File lib/rate_limiter/model_config.rb, line 8 def initialize(model_class) @model_class = model_class end
Public Instance Methods
setup(options = {})
click to toggle source
Set up `@model_class` for RateLimiter
. Includes callbacks, class attributes, instance methods, etc.
# File lib/rate_limiter/model_config.rb, line 14 def setup(options = {}) @model_class.send(:include, Model::InstanceMethods) setup_options(options) setup_validations end
Private Instance Methods
setup_options(options)
click to toggle source
# File lib/rate_limiter/model_config.rb, line 22 def setup_options(options) @model_class.class_attribute :rate_limiter_options @model_class.rate_limiter_options = options.dup end
setup_validations()
click to toggle source
# File lib/rate_limiter/model_config.rb, line 27 def setup_validations # TODO: Maybe make it so the context can be configured. @model_class.validate(on: :create) do |record| Validator.new(record).validate end end