class Rack::BlockSlackbot

Constants

DEFAULT_RESPONSE
HTTP_USER_AGENT
SLACKBOT_UA_PATTERN

Pattern to match Slack’s robots. Documentation here: api.slack.com/robots

Public Class Methods

new(app, options = {}) click to toggle source
# File lib/rack/block_slackbot.rb, line 17
def initialize(app, options = {})
  @app = app
  @response = options.fetch(:response, DEFAULT_RESPONSE)
end

Public Instance Methods

block?(env) click to toggle source
# File lib/rack/block_slackbot.rb, line 30
def block?(env)
  env[HTTP_USER_AGENT] && env[HTTP_USER_AGENT] =~ SLACKBOT_UA_PATTERN
end
call(env) click to toggle source
# File lib/rack/block_slackbot.rb, line 22
def call(env)
  if block?(env)
    @response
  else
    @app.call(env)
  end
end