- if (typeof(sentrySrc) != "undefined")
	- if (sentrySrc.match(/^([a-z]+:)?\/\//i))
		script(src="#{sentrySrc}")
	- else
		script(src="#{jsPath}libs/#{sentrySrc}")
- if (typeof(sentrySrc) != "undefined")
	script(type="text/javascript").
		if (typeof(Raven) != "undefined" && Raven.config) {
			Raven.config("#{sentryPublicDSN}", {
			tags: { 'commit': '@@COMMIT@@', 'build': '@@RELEASE@@' },
			release: '@@RELEASE@@',
			// Ignore list based off: https://gist.github.com/1878283
			ignoreErrors: [
				'DealPly',
				// Random plugins/extensions
				'top.GLOBALS',
				// See: http://blog.errorception.com/2012/03/tale-of-unfindable-js-error.html
				'originalCreateNotification',
				'canvas.contentDocument',
				'MyApp_RemoveAllHighlights',
				'http://tt.epicplay.com',
				'Can\'t find variable: ZiteReader',
				'jigsaw is not defined',
				'ComboSearch is not defined',
				'http://loading.retry.widdit.com/',
				'atomicFindClose',
				// Facebook borked
				'fb_xd_fragment',
				// ISP optimizing proxy - `Cache-Control: no-transform` seems to reduce this. (thanks @acdha)
				// See http://stackoverflow.com/questions/4113268/how-to-stop-javascript-injection-from-vodafone-proxy
				'bmi_SafeAddOnload',
				'EBCallBackMessageReceived',
				// See http://toolbar.conduit.com/Developer/HtmlAndGadget/Methods/JSInjection.aspx
				'conduitPage',
				'/NS_ERROR_NOT_CONNECTED/i',
				"/Cannot read property 'row' of undefined/i",
				'TypeError: start is undefined'
			],
			ignoreUrls: [
				// Facebook flakiness
				/graph\.facebook\.com/i,
				// Facebook blocked
				/connect\.facebook\.net\/en_US\/all\.js/i,
				// Woopra flakiness
				/eatdifferent\.com\.woopra-ns\.com/i,
				/static\.woopra\.com\/js\/woopra\.js/i,
				// Chrome extensions
				/extensions\//i,
				/^chrome:\/\//i,
				// Other plugins
				/127\.0\.0\.1:4001\/isrunning/i,  // Cacaoweb
				/webappstoolbarba\.texthelp\.com\//i,
				/metrics\.itunes\.apple\.com\.edgesuite\.net\//i,
				/a\.disquscdn\.com/i,
				/platform\.twitter\.com/i,
				/pstatic\.datafastguru\.info/i
			],
			shouldSendCallback: function(data) {
				// only send a fraction of errors
				var sampleRate = 0.01;
				return (Math.random() <= sampleRate);
			},
			dataCallback: function(data) {
				// remove circular references from object
				var cache = [];
				var s = JSON.stringify(data, function(k, v) { if (typeof v === 'object' && v !== null) { if (cache.indexOf(v) !== -1) return "[circular]"; cache.push(v); }; return v; });
				return JSON.parse(s);
			}
			// we highly recommend restricting exceptions to a domain in order to filter out clutter
			// whitelistUrls: ['example.com/scripts/']
			}).install();
		}
	- if (typeof(user) != "undefined" && typeof (user.email) != "undefined")
		script(type="text/javascript").
			if (typeof(Raven) != "undefined" && Raven.setUserContext) {
				Raven.setUserContext({email: '#{user.email}'});
			}
