nodegit
Version:
Node.js libgit2 asynchronous native bindings
40 lines (31 loc) • 1.08 kB
JavaScript
;
var NodeGit = require("../");
var Signature = NodeGit.Signature;
var toPaddedDoubleDigitString = function toPaddedDoubleDigitString(number) {
if (number < 10) {
return "0" + number;
}
return "" + number;
};
/**
* Standard string representation of an author.
* @param {Boolean} withTime Whether or not to include timestamp
* @return {String} Representation of the author.
*/
Signature.prototype.toString = function (withTime) {
var name = this.name().toString();
var email = this.email().toString();
var stringifiedSignature = name + " <" + email + ">";
if (!withTime) {
return stringifiedSignature;
}
var when = this.when();
var offset = when.offset();
var offsetMagnitude = Math.abs(offset);
var time = when.time();
var sign = offset < 0 || when.sign() === "-" ? "-" : "+";
var hours = toPaddedDoubleDigitString(Math.floor(offsetMagnitude / 60));
var minutes = toPaddedDoubleDigitString(offsetMagnitude % 60);
stringifiedSignature += " " + time + " " + sign + hours + minutes;
return stringifiedSignature;
};