Sha256: 2fb4c6c3a4cc4634a236f41bfbee36ad52ed43c1b967ab11a055db69aaecdfbc
Contents?: true
Size: 833 Bytes
Versions: 6
Compression:
Stored size: 833 Bytes
Contents
# frozen_string_literal: true module CrawlerDetect class Detector def initialize(user_agent) @user_agent = user_agent.to_s.dup end def is_crawler? @is_crawler ||= begin !completely_exclusion? && matches_crawler_list? end end def crawler_name return unless is_crawler? @crawler_name end private def completely_exclusion? @user_agent.gsub!(exclusions_matcher, "") @user_agent.strip.length == 0 end def matches_crawler_list? @crawler_name = crawlers_matcher.match(@user_agent).to_s !@crawler_name.empty? end def exclusions_matcher CrawlerDetect::Library.get_regexp("exclusions") end def crawlers_matcher CrawlerDetect::Library.get_regexp("crawlers") end end end
Version data entries
6 entries across 6 versions & 1 rubygems