Class: Trackguard::Adapters::Hub
- Inherits:
-
Base
- Object
- Base
- Trackguard::Adapters::Hub
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
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
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
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
52
53
54
|
# File 'lib/trackguard/adapters/hub.rb', line 52
def whitelisted_ip?(ip)
rules.fetch(:whitelisted_ips, []).include?(ip)
end
|