Sha256: 05db7109371faa3ffe859201555dfc961ced08b34c139171cd7e0a5e0f69ac43
Contents?: true
Size: 828 Bytes
Versions: 2
Compression:
Stored size: 828 Bytes
Contents
# frozen_string_literal: true module CrawlerDetect class Detector def initialize(user_agent) @user_agent = user_agent.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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
crawler_detect-0.0.3 | lib/crawler_detect/detector.rb |
crawler_detect-0.0.2 | lib/crawler_detect/detector.rb |