Class: Trackguard::Adapters::Hub

Inherits:
Base
  • Object
show all
Defined in:
lib/trackguard/adapters/hub.rb

Constant Summary collapse

CACHE_KEY =
"trackguard/hub_rules"
STALE_KEY =
"trackguard/hub_rules/stale"
ETAG_KEY =
"trackguard/hub_rules/etag"

Instance Method Summary collapse

Methods inherited from Base

#track_blocked_request, #track_page_view

Instance Method Details

#blocked_path?(path) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
49
50
# File 'lib/trackguard/adapters/hub.rb', line 46

def blocked_path?(path)
  rules.fetch(:blocked_paths, []).any? do |p|
    path.to_s.downcase.include?(p.downcase)
  end
end

#blocked_user_agent?(user_agent) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
43
44
# File 'lib/trackguard/adapters/hub.rb', line 40

def blocked_user_agent?(user_agent)
  rules.fetch(:blocked_user_agents, []).any? do |p|
    user_agent.to_s.downcase.include?(p.downcase)
  end
end

#flagged_visitor?(ip) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/trackguard/adapters/hub.rb', line 56

def flagged_visitor?(ip)
  rules.fetch(:flagged_ips, []).include?(ip)
end

#validate!Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/trackguard/adapters/hub.rb', line 13

def validate!
  return unless Trackguard.tracking_enabled?

  missing = []
  missing << "hub_api_key"    if Trackguard.hub_api_key.blank?
  missing << "hub_secret_key" if Trackguard.hub_secret_key.blank?
  return if missing.empty?

  raise Trackguard::ConfigurationError, <<~MSG.strip
    Trackguard Hub adapter is missing required credentials: #{missing.join(', ')}.

    Set them in your initializer:

        Trackguard.configure do |c|
          c.adapter        = :hub
          c.hub_api_key    = ENV["TRACKGUARD_API_KEY"]
          c.hub_secret_key = ENV["TRACKGUARD_SECRET_KEY"]
        end

    Sign up at https://trackguard.dev to create a project and generate credentials.

    To use local tracking instead (no external service needed):

        Trackguard.configure { |c| c.adapter = :local }
  MSG
end

#whitelisted_ip?(ip) ⇒ Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/trackguard/adapters/hub.rb', line 52

def whitelisted_ip?(ip)
  rules.fetch(:whitelisted_ips, []).include?(ip)
end