Sha256: 74e1acc0b73573a05585b5ea9f359652cb450ac9e86b1a58112ad876ba7ff0b0
Contents?: true
Size: 976 Bytes
Versions: 10
Compression:
Stored size: 976 Bytes
Contents
# frozen_string_literal: true module Rack class CrawlerDetect def initialize(app, options = {}) Rack::Request::Helpers.module_eval do def is_crawler? env["rack.crawler_detect"][:is_crawler] end def crawler_name env["rack.crawler_detect"][:crawler_name] end end @app = app end def call(env) @env = env set_env_variables! @app.call(@env) end private def set_env_variables! return @env unless user_agent detector = ::CrawlerDetect::Detector.new(user_agent) @env["rack.crawler_detect"] = { is_crawler: detector.is_crawler?, crawler_name: detector.crawler_name, } end def user_agent user_agent_headers.map do |header| @env[header] end.compact.join(" ") end def user_agent_headers ::CrawlerDetect::Library.get_array("headers") end end end
Version data entries
10 entries across 10 versions & 1 rubygems