Revert previous commit; move urlencode to plugin.
This commit is contained in:
Родитель
f6c8059dd5
Коммит
1bfd9a48d3
1
Makefile
1
Makefile
|
@ -66,7 +66,6 @@ d3.core.js: \
|
||||||
src/core/range.js \
|
src/core/range.js \
|
||||||
src/core/requote.js \
|
src/core/requote.js \
|
||||||
src/core/round.js \
|
src/core/round.js \
|
||||||
src/core/urlencode.js \
|
|
||||||
src/core/xhr.js \
|
src/core/xhr.js \
|
||||||
src/core/text.js \
|
src/core/text.js \
|
||||||
src/core/json.js \
|
src/core/json.js \
|
||||||
|
|
|
@ -57,9 +57,6 @@
|
||||||
while (x * k % 1) k *= 10;
|
while (x * k % 1) k *= 10;
|
||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
function d3_urlencode(value) {
|
|
||||||
return encodeURIComponent(value).replace(/%20/g, "+");
|
|
||||||
}
|
|
||||||
function d3_xhr_fixCallback(callback) {
|
function d3_xhr_fixCallback(callback) {
|
||||||
return callback.length === 1 ? function(error, request) {
|
return callback.length === 1 ? function(error, request) {
|
||||||
callback(error == null ? request : null);
|
callback(error == null ? request : null);
|
||||||
|
@ -2943,21 +2940,6 @@
|
||||||
d3.round = function(x, n) {
|
d3.round = function(x, n) {
|
||||||
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
|
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
|
||||||
};
|
};
|
||||||
d3.urlencode = function(name, value) {
|
|
||||||
var array = [];
|
|
||||||
d3_arraySubclass(array, d3_urlencodePrototype);
|
|
||||||
return arguments.length ? array.and(name, value) : array;
|
|
||||||
};
|
|
||||||
var d3_urlencodePrototype = d3.urlencode.prototype = [];
|
|
||||||
d3_urlencodePrototype.type = "application/x-www-form-urlencoded;charset=utf-8";
|
|
||||||
d3_urlencodePrototype.and = function(name, value) {
|
|
||||||
name = d3_urlencode(name);
|
|
||||||
this.push(value == null ? name : name + "=" + d3_urlencode(value));
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
d3_urlencodePrototype.toString = function() {
|
|
||||||
return this.join("&");
|
|
||||||
};
|
|
||||||
d3.xhr = function(url, mimeType, callback) {
|
d3.xhr = function(url, mimeType, callback) {
|
||||||
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new XMLHttpRequest;
|
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new XMLHttpRequest;
|
||||||
request.onreadystatechange = function() {
|
request.onreadystatechange = function() {
|
||||||
|
@ -2999,13 +2981,12 @@
|
||||||
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
|
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
|
||||||
request.open(method, url, true);
|
request.open(method, url, true);
|
||||||
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
|
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
|
||||||
if (data == null) data = null; else if (data.type != null && !("content-type" in headers)) headers["content-type"] = data.type;
|
|
||||||
for (var name in headers) request.setRequestHeader(name, headers[name]);
|
for (var name in headers) request.setRequestHeader(name, headers[name]);
|
||||||
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
|
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
|
||||||
if (callback != null) xhr.on("error", callback).on("load", function(request) {
|
if (callback != null) xhr.on("error", callback).on("load", function(request) {
|
||||||
callback(null, request);
|
callback(null, request);
|
||||||
});
|
});
|
||||||
request.send(data);
|
request.send(data == null ? null : data);
|
||||||
return xhr;
|
return xhr;
|
||||||
};
|
};
|
||||||
xhr.abort = function() {
|
xhr.abort = function() {
|
||||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,23 +0,0 @@
|
||||||
d3.urlencode = function(name, value) {
|
|
||||||
var array = [];
|
|
||||||
d3_arraySubclass(array, d3_urlencodePrototype);
|
|
||||||
return arguments.length ? array.and(name, value) : array;
|
|
||||||
};
|
|
||||||
|
|
||||||
var d3_urlencodePrototype = d3.urlencode.prototype = [];
|
|
||||||
|
|
||||||
d3_urlencodePrototype.type = "application/x-www-form-urlencoded;charset=utf-8";
|
|
||||||
|
|
||||||
d3_urlencodePrototype.and = function(name, value) {
|
|
||||||
name = d3_urlencode(name);
|
|
||||||
this.push(value == null ? name : name + "=" + d3_urlencode(value));
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
d3_urlencodePrototype.toString = function() {
|
|
||||||
return this.join("&");
|
|
||||||
};
|
|
||||||
|
|
||||||
function d3_urlencode(value) {
|
|
||||||
return encodeURIComponent(value).replace(/%20/g, "+");
|
|
||||||
}
|
|
|
@ -55,11 +55,10 @@ d3.xhr = function(url, mimeType, callback) {
|
||||||
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
|
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
|
||||||
request.open(method, url, true);
|
request.open(method, url, true);
|
||||||
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
|
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
|
||||||
if (data == null) data = null; else if (data.type != null && !("content-type" in headers)) headers["content-type"] = data.type;
|
|
||||||
for (var name in headers) request.setRequestHeader(name, headers[name]);
|
for (var name in headers) request.setRequestHeader(name, headers[name]);
|
||||||
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
|
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
|
||||||
if (callback != null) xhr.on("error", callback).on("load", function(request) { callback(null, request); });
|
if (callback != null) xhr.on("error", callback).on("load", function(request) { callback(null, request); });
|
||||||
request.send(data);
|
request.send(data == null ? null : data);
|
||||||
return xhr;
|
return xhr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
require("../env");
|
|
||||||
|
|
||||||
var vows = require("vows"),
|
|
||||||
assert = require("assert");
|
|
||||||
|
|
||||||
var suite = vows.describe("d3.urlencode");
|
|
||||||
|
|
||||||
suite.addBatch({
|
|
||||||
"urlencode": {
|
|
||||||
topic: function() {
|
|
||||||
return d3.urlencode;
|
|
||||||
},
|
|
||||||
"returns an instanceof d3.urlencode": function(urlencode) {
|
|
||||||
assert.instanceOf(urlencode(), d3.urlencode);
|
|
||||||
},
|
|
||||||
"returns an array": function(urlencode) {
|
|
||||||
assert.isArray(urlencode(), d3.urlencode);
|
|
||||||
assert.deepEqual(urlencode("foo", 2).and("bar"), ["foo=2", "bar"]);
|
|
||||||
},
|
|
||||||
"can be empty": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode() + "", "");
|
|
||||||
},
|
|
||||||
"can be modified via array methods, albeit unsafely": function(urlencode) {
|
|
||||||
var u = urlencode("foo", 1).and("bar", 2).and("baz", 3);
|
|
||||||
u.splice(1, 1);
|
|
||||||
u.push("unsafe=true")
|
|
||||||
u.sort();
|
|
||||||
assert.strictEqual(u + "", "baz=3&foo=1&unsafe=true");
|
|
||||||
},
|
|
||||||
"has the type application/x-www-form-urlencoded;charset=utf-8": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode().type, "application/x-www-form-urlencoded;charset=utf-8");
|
|
||||||
},
|
|
||||||
"encodes the name and value per the HTML 4.01 specification": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode("foo", "bar") + "", "foo=bar");
|
|
||||||
assert.strictEqual(urlencode("f o", "b r") + "", "f+o=b+r"); // not %20
|
|
||||||
assert.strictEqual(urlencode("foo", "bär") + "", "foo=b%C3%A4r"); // UTF-8 bytes
|
|
||||||
},
|
|
||||||
"coerces the name and value to strings": function(urlencode) {
|
|
||||||
var foo = {toString: function() { return "foo"; }},
|
|
||||||
bar = new String("bar");
|
|
||||||
assert.strictEqual(urlencode(foo, bar) + "", "foo=bar");
|
|
||||||
},
|
|
||||||
"and": {
|
|
||||||
"modifies the urlencode in-place": function(urlencode) {
|
|
||||||
var u = urlencode("foo", "bar");
|
|
||||||
assert.strictEqual(u.and("baz"), u);
|
|
||||||
assert.strictEqual(u + "", "foo=bar&baz");
|
|
||||||
},
|
|
||||||
"supports multiple values with the same name": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode("foo", 1).and("foo", 2) + "", "foo=1&foo=2");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ignores the value if null or undefined": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode("foo") + "", "foo");
|
|
||||||
assert.strictEqual(urlencode("foo", null) + "", "foo");
|
|
||||||
assert.strictEqual(urlencode("foo", undefined) + "", "foo");
|
|
||||||
},
|
|
||||||
"does not ignore the value if the empty string": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode("foo", "") + "", "foo=");
|
|
||||||
},
|
|
||||||
"does not ignore the value if falsey": function(urlencode) {
|
|
||||||
assert.strictEqual(urlencode("foo", 0).and("bar", false) + "", "foo=0&bar=false");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
suite.export(module);
|
|
Загрузка…
Ссылка в новой задаче