Skip to content

Commit 2fc84c8

Browse files
Merge branch 'master' into production
2 parents 89e1715 + bc91519 commit 2fc84c8

File tree

6 files changed

+82
-3
lines changed

6 files changed

+82
-3
lines changed

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tui-code-snippet",
3-
"version": "1.2.9",
3+
"version": "1.3.0",
44
"description": "TOAST UI Utility: CodeSnippet",
55
"main": "dist/tui-code-snippet.js",
66
"scripts": {

src/js/collection.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ var object = require('./object');
2121
* @param {function} iteratee Callback function
2222
* @param {Object} [context] Context(this) of callback function
2323
* @memberof tui.util
24-
* //-- #1. Get Module --//
24+
* @example
25+
* //-- #1. Get Module --//
2526
* var util = require('tui-code-snippet'); // node, commonjs
2627
* var util = tui.util; // distribution file
2728
*
@@ -96,6 +97,7 @@ function forEachOwnProperties(obj, iteratee, context) {
9697
* @param {function} iteratee Callback function
9798
* @param {Object} [context] Context(this) of callback function
9899
* @memberof tui.util
100+
* @example
99101
* //-- #1. Get Module --//
100102
* var util = require('tui-code-snippet'); // node, commonjs
101103
* var util = tui.util; // distribution file
@@ -136,6 +138,7 @@ function forEach(obj, iteratee, context) {
136138
* @param {Object} [context] Context(this) of callback function
137139
* @returns {Array} A new array composed of returned values from callback function
138140
* @memberof tui.util
141+
* @example
139142
* //-- #1. Get Module --//
140143
* var util = require('tui-code-snippet'); // node, commonjs
141144
* var util = tui.util; // distribution file

src/js/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ extend(util, require('./func'));
2727
extend(util, require('./inheritance'));
2828
extend(util, require('./string'));
2929
extend(util, require('./tricks'));
30+
extend(util, require('./request'));
3031

3132
util.browser = require('./browser');
3233
util.popup = require('./window');

src/js/request.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* @fileoverview This module has some functions for handling object as collection.
3+
* @author NHN Ent.
4+
* FE Development Lab <dl_javascript@nhnent.com>
5+
*/
6+
'use strict';
7+
8+
var object = require('./object');
9+
var collection = require('./collection');
10+
11+
/**
12+
* Request image ping.
13+
* @param {String} url url for ping request
14+
* @param {Object} trackingInfo infos for make query string
15+
* @returns {HTMLElement}
16+
* @memberof tui.util
17+
* @example
18+
* //-- #1. Get Module --//
19+
* var util = require('tui-code-snippet'); // node, commonjs
20+
* var util = tui.util; // distribution file
21+
*
22+
* //-- #2. Use property --//
23+
* util.imagePing('https://www.google-analytics.com/collect', {
24+
* v: 1,
25+
* t: 'event',
26+
* tid: 'trackingid',
27+
* cid: 'cid',
28+
* dp: 'dp',
29+
* dh: 'dh'
30+
* });
31+
*/
32+
function imagePing(url, trackingInfo) {
33+
var queryString = collection.map(object.keys(trackingInfo), function(key, index) {
34+
var startWith = index === 0 ? '' : '&';
35+
36+
return startWith + key + '=' + trackingInfo[key];
37+
}).join('');
38+
var trackingElement = document.createElement('img');
39+
40+
trackingElement.src = url + '?' + queryString;
41+
42+
trackingElement.style.display = 'none';
43+
document.body.appendChild(trackingElement);
44+
document.body.removeChild(trackingElement);
45+
46+
return trackingElement;
47+
}
48+
49+
module.exports = {
50+
imagePing: imagePing
51+
};

test/request.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
'use strict';
2+
3+
var request = require('../src/js/request');
4+
5+
describe('module:request', function() {
6+
describe('imagePing', function() {
7+
beforeEach(function() {
8+
document.body.innerHTML = '';
9+
});
10+
11+
it('should add tracking dom in body', function() {
12+
var trackingElement = request.imagePing('https://www.google-analytics.com/collect', {
13+
v: 1,
14+
t: 'event',
15+
tid: 'tracnkingid',
16+
cid: 'cid',
17+
dp: 'dp',
18+
dh: 'dh'
19+
});
20+
21+
expect(trackingElement.src).toBe('https://www.google-analytics.com/collect?v=1&t=event&tid=tracnkingid&cid=cid&dp=dp&dh=dh');
22+
});
23+
});
24+
});

0 commit comments

Comments
 (0)