Sha256: 02b42f4504ca00afac783664bf58b9df435a936498de781ba0af41284949c782
Contents?: true
Size: 979 Bytes
Versions: 2
Compression:
Stored size: 979 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) set_env_variables!(env) @app.call(env) end private def set_env_variables!(env) ua = user_agent(env) return unless ua detector = ::CrawlerDetect::Detector.new(ua) env["rack.crawler_detect"] = { is_crawler: detector.is_crawler?, crawler_name: detector.crawler_name, } end def user_agent(env) 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
crawler_detect-0.1.12 | lib/rack/crawler_detect.rb |
crawler_detect-0.1.11 | lib/rack/crawler_detect.rb |