Skip to content

Commit

Permalink
Merge pull request #232 from ALE-Rainbow/master
Browse files Browse the repository at this point in the history
Fix #180 - Custom with multi attr failure
  • Loading branch information
DABH committed Jul 22, 2018
2 parents 21abbcb + a98deca commit ba56f52
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 10 deletions.
18 changes: 8 additions & 10 deletions lib/extendStringPrototype.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,16 @@ module['exports'] = function() {
} else {
if (typeof(theme[prop]) === 'string') {
colors[prop] = colors[theme[prop]];
addProperty(prop, function() {
return colors[theme[prop]](this);
});
} else {
addProperty(prop, function() {
var ret = this;
for (var t = 0; t < theme[prop].length; t++) {
ret = colors[theme[prop][t]](ret);
}
return ret;
});
var tmp = colors[theme[prop][0]];
for (var t = 1; t < theme[prop].length; t++) {
tmp = tmp[theme[prop][t]];
}
colors[prop] = tmp;
}
addProperty(prop, function() {
return colors[prop](this);
});
}
});
}
Expand Down
10 changes: 10 additions & 0 deletions tests/basic-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,13 @@ assert.equal(typeof ('astring'.red), 'string');
assert.equal(typeof ('astring'.error), 'string');

assert.equal(s, 'string');

colors.setTheme({custom: ['blue', 'bold', 'underline']});
assert.equal(colors.custom(s),
'\x1b[34m' + '\x1b[1m' + '\x1b[4m' + s +
'\x1b[24m' + '\x1b[22m' + '\x1b[39m' );

colors.setTheme({custom: ['red', 'italic', 'inverse']});
assert.equal(colors.custom(s),
'\x1b[31m' + '\x1b[3m' + '\x1b[7m' + s +
'\x1b[27m' + '\x1b[23m' + '\x1b[39m' );
9 changes: 9 additions & 0 deletions tests/safe-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,12 @@ colors.setTheme({error: 'red'});
assert.equal(typeof (colors.red('astring')), 'string');
assert.equal(typeof (colors.error('astring')), 'string');

colors.setTheme({custom: ['blue', 'bold', 'underline']});
assert.equal(colors.custom(s),
'\x1b[4m' + '\x1b[1m' + '\x1b[34m' + s +
'\x1b[39m' + '\x1b[22m' + '\x1b[24m' );

colors.setTheme({custom: ['red', 'italic', 'inverse']});
assert.equal(colors.custom(s),
'\x1b[7m' + '\x1b[3m' + '\x1b[31m' + s +
'\x1b[39m' + '\x1b[23m' + '\x1b[27m' );

0 comments on commit ba56f52

Please sign in to comment.