Comparing version 0.1.15 to 0.1.16
# Change log | ||
## Version 0.1.16 | ||
## Added | ||
## Changed | ||
#### Support for multi-byte characters for .table() | ||
## Deprecated | ||
None | ||
## Removed | ||
None | ||
*** | ||
## Version 0.1.15 | ||
@@ -4,0 +22,0 @@ |
@@ -0,1 +1,2 @@ | ||
var singleByteChar = /^[a-z0-9\~\`\!\@\#\ \$\%\^\*\&\(\)\-\_\=\+\|\\\}\{\]\[\"\'\:\;\,<\.>\?\/]/i; | ||
var paddings = 2; | ||
@@ -62,3 +63,3 @@ | ||
data = data.toString(); | ||
var diff = this.longests[index] - data.length; | ||
var diff = this.longests[index] - charLen(data); | ||
@@ -131,3 +132,3 @@ if (diff) { | ||
Table.prototype.setLongest = function (index, str) { | ||
var len = str.toString().length; | ||
var len = charLen(str.toString()); | ||
if (!this.longests[index] || len > this.longests[index]) { | ||
@@ -138,2 +139,14 @@ this.longests[index] = len; | ||
function charLen(str) { | ||
var length = 0; | ||
for (var i = 0, len = str.length; i < len; i++) { | ||
if (str[i].match(singleByteChar)) { | ||
length += 1; | ||
} else { | ||
length += 2; | ||
} | ||
} | ||
return length; | ||
} | ||
module.exports = Table; |
{ | ||
"name": "gracelog", | ||
"description": "Log management module", | ||
"version": "0.1.15", | ||
"version": "0.1.16", | ||
"author": "Nobuyori Takahashi <voltrue2@yahoo.com>", | ||
@@ -6,0 +6,0 @@ "repository": { |
@@ -70,16 +70,20 @@ var assert = require('assert'); | ||
name: 'testOne', | ||
value: 1 | ||
value: 1, | ||
language: '日本語', | ||
}, | ||
two: { | ||
name: 'testTwo', | ||
name: 'testTwo<2>', | ||
value: 2, | ||
language: 'こんにちは', | ||
ident: '02' | ||
}, | ||
three: { | ||
name: 'testThree', | ||
value: 3 | ||
name: 'testThree<3>', | ||
value: 3, | ||
language: 'ありがとうございます', | ||
}, | ||
four: { | ||
name: 'testFour', | ||
value: 4 | ||
value: 4, | ||
language: '言葉' | ||
}, | ||
@@ -86,0 +90,0 @@ }; |
4177750
844