15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/stackify/rum.rb', line 15
def insert_rum_script()
return StackifyRubyAPM.inject_rum_script if Rum.apm_loaded && defined?(StackifyRubyAPM) && StackifyRubyAPM.respond_to?(:inject_rum_script)
return '' unless @config
config = @config
return '' if config.rum_script_url.to_s.empty? || config.rum_key.to_s.empty?
transaction_id = get_transaction_id().to_s
return '' if transaction_id.empty?
reporting_url = get_reporting_url().to_s
return '' if reporting_url.empty?
environment_name = defined?(config.env) ? config.env.to_s : 'Development'
return '' if environment_name.empty?
application_name = defined?(config.app_name) ? config.app_name.to_s : ''
return '' if application_name.empty?
rum_settings = {
"ID" => transaction_id
}
if !environment_name.empty?
rum_settings["Env"] = Base64.strict_encode64(environment_name.encode('utf-8'))
end
if !application_name.empty?
rum_settings["Name"] = Base64.strict_encode64(application_name.strip.encode('utf-8'))
end
if !reporting_url.empty?
rum_settings["Trans"] = Base64.strict_encode64(reporting_url.encode('utf-8'))
end
rum_content = "<script type=\"text/javascript\">(window.StackifySettings || (window.StackifySettings = #{rum_settings.to_json}))</script><script src=\"#{config.rum_script_url}\" data-key=\"#{config.rum_key}\" async></script>"
if rum_content.respond_to?(:html_safe)
rum_content.html_safe
else
rum_content
end
end
|