class Grape::Attack::Request
Attributes
context[R]
env[R]
request[R]
throttle_options[R]
Public Class Methods
new(env)
click to toggle source
# File lib/grape/attack/request.rb, line 9 def initialize(env) @env = env @context = env['api.endpoint'] @request = @context.routes.first @throttle_options = ::Grape::Attack::Options.new(@context.route_setting(:throttle)) end
Public Instance Methods
client_identifier()
click to toggle source
# File lib/grape/attack/request.rb, line 36 def client_identifier self.instance_eval(&throttle_options.identifier) || env['HTTP_X_REAL_IP'] || env['REMOTE_ADDR'] end
method()
click to toggle source
# File lib/grape/attack/request.rb, line 16 def method request.request_method end
method_missing(method_name, *args, &block)
click to toggle source
# File lib/grape/attack/request.rb, line 28 def method_missing(method_name, *args, &block) context.public_send(method_name, *args, &block) end
params()
click to toggle source
# File lib/grape/attack/request.rb, line 24 def params request.params end
path()
click to toggle source
# File lib/grape/attack/request.rb, line 20 def path request.path end
respond_to_missing?(method_name, include_private = false)
click to toggle source
# File lib/grape/attack/request.rb, line 32 def respond_to_missing?(method_name, include_private = false) context.respond_to?(method_name) end
throttle?()
click to toggle source
# File lib/grape/attack/request.rb, line 40 def throttle? return false unless context.route_setting(:throttle).present? return true if throttle_options.valid? fail ArgumentError.new(throttle_options.errors.full_messages) end