diff --git a/.gitignore b/.gitignore index 77c4c7ad5..cd0442e79 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ node_modules # creds for Grunt aws.json +dist +src/js/lib/lodash.js diff --git a/Gruntfile.js b/Gruntfile.js index 8ac37acc8..81a1c3bde 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -167,9 +167,9 @@ module.exports = function(grunt) { { src: 'dist/sp.js', dest: '<%= pkg.pinnedVersion %>/sp.js' - } + } ] - }, + } }); grunt.config('invalidate_cloudfront', { diff --git a/src/js/config.json b/src/js/config.json new file mode 100644 index 000000000..08cc468cd --- /dev/null +++ b/src/js/config.json @@ -0,0 +1,3 @@ +{ + "namespace": "ssp" +} diff --git a/src/js/init.js b/src/js/init.js index f6779a250..0fc1b54b3 100644 --- a/src/js/init.js +++ b/src/js/init.js @@ -32,8 +32,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +var config = require('./config.json'); +var namespace = config.namespace; + // Snowplow Asynchronous Queue -window._snaq = window._snaq || []; +if (namespace) { + window[namespace]._snaq = window[namespace]._snaq || []; +} else { + window._snaq = window._snaq || []; +} var snowplow = require('./snowplow'); -window.Snowplow = window.Snowplow || new snowplow.Snowplow(); +window[namespace].Snowplow = window[namespace].Snowplow || new snowplow.Snowplow(); diff --git a/src/js/snowplow.js b/src/js/snowplow.js index 3c975fd72..156a70791 100644 --- a/src/js/snowplow.js +++ b/src/js/snowplow.js @@ -78,6 +78,8 @@ tracker = require('./tracker'), helpers = require('./lib/helpers'), queue = require('./queue'), + config = require('./config.json'), + namespace = config.namespace, object = typeof exports !== 'undefined' ? exports : this; // For eventual node.js environment support @@ -203,7 +205,11 @@ asyncTracker = new tracker.Tracker(version, mutSnowplowState); // No argmap // Now replace initialization array with proxy object - windowAlias._snaq = new queue.AsyncQueueProxy(asyncTracker, windowAlias._snaq); + if (namespace) { + windowAlias[namespace]._snaq = new queue.AsyncQueueProxy(asyncTracker, windowAlias[namespace]._snaq); + } else { + windowAlias._snaq = new queue.AsyncQueueProxy(asyncTracker, windowAlias._snaq); + } /************************************************************ * Public data and methods diff --git a/tests/intern.js b/tests/intern.js index 7d2d20b8d..3049d1bfe 100644 --- a/tests/intern.js +++ b/tests/intern.js @@ -34,7 +34,7 @@ define({ -// Non-functional test suites -suites: ['tests/queue', 'tests/payload'], + // Non-functional test suites + suites: ['tests/queue', 'tests/payload'] });