Sha256: 085c940adf85d87739581a1d322f80e7269c22b8e7ed9ed1ed9ebcea57d07bc2

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

# Client for injecting JavaScript code for tracking front end exceptions
# https://raygun.com/docs/languages/javascript
module Raygun
  class JavaScriptTracker
    def head_html
      return unless js_api_key?
      [
        '<script type="text/javascript">',
        '!function(a,b,c,d,e,f,g,h){a.RaygunObject=e,a[e]=a[e]||function(){',
        '(a[e].o=a[e].o||[]).push(arguments)},f=b.createElement(c),g=b.getElementsByTagName(c)[0],',
        'f.async=1,f.src=d,g.parentNode.insertBefore(f,g),h=a.onerror,a.onerror=function(b,c,d,f,g){',
        'h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({',
        'e:g})}}(window,document,"script","//cdn.raygun.io/raygun4js/' + js_api_version + 'raygun.min.js","rg4js");',
        '</script>'
      ].join('').html_safe
    end

    def body_html
      return unless js_api_key?
      [
        '<script type="text/javascript">',
        "rg4js('apiKey', '#{js_api_key}');",
        "rg4js('enableCrashReporting', true);",
        '</script>'
      ].join('').html_safe
    end

    private

    def js_api_key
      @js_api_key ||= Raygun.configuration.js_api_key
    end

    def js_api_version
      @js_api_version ||= Raygun.configuration.js_api_version ? "#{Raygun.configuration.js_api_version}/" : ''
    end

    def js_api_key?
      js_api_key.present?
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
raygun4ruby-3.2.6 lib/raygun/javascript_tracker.rb
raygun4ruby-3.2.5.pre lib/raygun/javascript_tracker.rb
raygun4ruby-3.2.4 lib/raygun/javascript_tracker.rb