Commit fbeef86e authored by Zéfling's avatar Zéfling 🎨
Browse files

Renommage d'une grosse partie des méthodes avec un _ devant

parent f4b89850
......@@ -2,21 +2,23 @@
Quelques petites méthodes en plus, par ajout sur le prototype des objets de base :
**Date**
- <code>Date.getMonthName()</code> : nom du mois
- <code>Date.getDayName()</code> : nom du jour de la semaine
- <code>Date.getDayOfYear()</code> : numéro du jour de l'année
- <code>Date.getWeek()</code> : numéro de semaine
- <code>Date.toStringFormat()</code> : formatage de la date
- <code>Date._getMonthName()</code> : nom du mois
- <code>Date._getDayName()</code> : nom du jour de la semaine
- <code>Date._getDayOfYear()</code> : numéro du jour de l'année
- <code>Date._getWeek()</code> : numéro de semaine
- <code>Date._toStringFormat()</code> : formatage de la date
*Number**
- <code>Math._roundDecimal()</code> : arrondir à une décimale précise
**Number**
- <code>Number._formatByPattern()</code> : formatage par pattern
- <code>Number._format()</code> : formatage
- <code>Number._roundDecimal()</code> : arrondir à une décimale précise
**String**
- <code>String.format()</code> : formateur {0, func, params}
- <code>String.padLeft()</code> : aggrandir une chaine par la gauche avec une chaine
- <code>String.padRight()</code> : aggrandir une chaine par la droite avec une chaine
- <code>String._format()</code> : formateur {0, func, params}
- <code>String._padLeft()</code> : aggrandir une chaine par la gauche avec une chaine
- <code>String._padRight()</code> : aggrandir une chaine par la droite avec une chaine
**String : String.format() > Formatter**
- choice : {0,choice,1# an|1> ans}
......
Date.prototype.monthNames = {
Date.prototype._monthNames = {
'fr' : [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ]
};
Date.prototype.dayNames = {
Date.prototype._dayNames = {
'fr' : [ 'Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi' ]
};
......@@ -10,8 +10,8 @@ Date.prototype.dayNames = {
* @param lg lg la langue, ex : 'fr' (factuatif)
* @return le nom du mois
*/
Date.prototype.getMonthName = function(lg) {
return this.monthNames[lg ? lg : navigator.language][this.getMonth()];
Date.prototype._getMonthName = function(lg) {
return this._monthNames[lg||navigator.language][this.getMonth()];
};
/**
......@@ -19,27 +19,26 @@ Date.prototype.getMonthName = function(lg) {
* @param lg la langue, ex : 'fr' (factuatif)
* @return le nom du jour de la semaine
*/
Date.prototype.getDayName = function(lg) {
return this.dayNames[lg ? lg : navigator.language][this.getDay()];
Date.prototype._getDayName = function(lg) {
return this._dayNames[lg||navigator.language][this.getDay()];
};
/**
* donne le jour de l'année en prenant en compte le changement d'heure (hiver/été)
* @return jour de l'année (0 à 365~366)
*/
Date.prototype.getDayOfYear = function () {
Date.prototype._getDayOfYear = function () {
var date = (new Date(this.getFullYear(), 0, 0));
return Math.floor((this - date - (this.getUTCHours() - date.getUTCHours()) * 3.6e+6) / 8.64e+7);
};
/**
* donne le numéro de semaine
* @param premier premier jour de la semaine (0 = dimanche | 1 = lundi / défaut = 1)
* @param base numéro de journée maxium pour la première semaine (défaut = 4 : jeudi)
* @param premier premier jour de la semaine (0 = dimanche | 1 = lundi (ISO) / défaut = 1)
* @return numéro de semaine (1 à 52~53)
*/
Date.prototype.getWeek = function (premier, base) {
Date.prototype._getWeek = function (premier) {
var premier = typeof(premier) == 'number' ? premier : 1,
base = typeof(base) == 'number' ? base : 4,
base = 4, // jeudi
correction = 0,
premierAnPre = new Date(this.getFullYear(),0,0),
......@@ -49,13 +48,13 @@ Date.prototype.getWeek = function (premier, base) {
if (premier == 1) {
correction = -2;
}
num = Math.ceil( (this.getDayOfYear() + jourSemaine + correction) / 7) + (jourSemaine <= base ? 0 : -1);
num = Math.ceil( (this._getDayOfYear() + jourSemaine + correction) / 7) + (jourSemaine <= base ? 0 : -1);
if (num == 0) {
num = premierAnPre.getWeek(premier, base);
num = premierAnPre._getWeek(premier);
}
else {
var pos = (dernierJourAn.getDayOfYear() + 1 - (this.getDayOfYear() - this.getDay())) % 7;
var pos = (dernierJourAn._getDayOfYear() + 1 - (this._getDayOfYear() - this.getDay())) % 7;
if (num > 52 && pos > 0 && pos < base) {
num = 1;
}
......@@ -69,9 +68,9 @@ Date.prototype.getWeek = function (premier, base) {
* @param lg langue
* @return la date formatée
*/
Date.prototype.toStringFormat = function (pattern, lg) {
var nm = this.getMonthName(lg),
nd = this.getDayName(lg),
Date.prototype._toStringFormat = function (pattern, lg) {
var nm = this._getMonthName(lg),
nd = this._getDayName(lg),
k = this.getHours() === 0 ? 24 : this.getHours(),
h = this.getHours() > 12 ? this.getHours() % 12 : (this.getHours() === 0 ? 12 : this.getHours());
......@@ -82,13 +81,13 @@ Date.prototype.toStringFormat = function (pattern, lg) {
.replace(/(^|[^\\]|)yyyy/g, "$1" + this.getFullYear())
.replace(/(^|[^\\])yy/g, "$1" + String(this.getFullYear()).substr(2, 2))
.replace(/(^|[^\\])M{3,}/g, "$1" + nm.substr(0, 3))
.replace(/(^|[^\\])MM/g, "$1" + String(this.getMonth() + 1).padLeft(2, '0'))
.replace(/(^|[^\\])MM/g, "$1" + String(this.getMonth() + 1)._padLeft(2, '0'))
.replace(/(^|[^\\])M/g, "$1" + (this.getMonth() + 1))
.replace(/(^|[^\\])ww/g, "$1" + String(this.getWeek()).padLeft(2, '0'))
.replace(/(^|[^\\])w/g, "$1" + this.getWeek())
.replace(/(^|[^\\])DDD/g, "$1" + String(this.getDayOfYear()).padLeft(2, '0'))
.replace(/(^|[^\\])D{1,2}/g,"$1" + this.getDayOfYear())
.replace(/(^|[^\\])dd/g, "$1" + String(this.getDate()).padLeft(2, '0'))
.replace(/(^|[^\\])ww/g, "$1" + String(this._getWeek())._padLeft(2, '0'))
.replace(/(^|[^\\])w/g, "$1" + this._getWeek())
.replace(/(^|[^\\])DDD/g, "$1" + String(this._getDayOfYear())._padLeft(2, '0'))
.replace(/(^|[^\\])D{1,2}/g,"$1" + this._getDayOfYear())
.replace(/(^|[^\\])dd/g, "$1" + String(this.getDate())._padLeft(2, '0'))
.replace(/(^|[^\\])d/g, "$1" + this.getDate())
.replace(/(^|[^\\])F/g, "$1" + this.getDay())
.replace(/(^|[^\\])E{4,}/g, "$1" + nd)
......@@ -96,21 +95,21 @@ Date.prototype.toStringFormat = function (pattern, lg) {
// heure
.replace(/(^|[^\\])a/g, "$1" + this.getHours() > 12 | this.getHours() === 0 ? 'PM' : 'AM')
.replace(/(^|[^\\])HH/g, "$1" + String(this.getHours()).padLeft(2, '0'))
.replace(/(^|[^\\])HH/g, "$1" + String(this.getHours())._padLeft(2, '0'))
.replace(/(^|[^\\])H/g, "$1" + this.getHours())
.replace(/(^|[^\\])kk/g, "$1" + String(k).padLeft(2, '0'))
.replace(/(^|[^\\])kk/g, "$1" + String(k)._padLeft(2, '0'))
.replace(/(^|[^\\])k/g, "$1" + k)
.replace(/(^|[^\\])KK/g, "$1" + String(this.getHours() % 12).padLeft(2, '0'))
.replace(/(^|[^\\])KK/g, "$1" + String(this.getHours() % 12)._padLeft(2, '0'))
.replace(/(^|[^\\])K/g, "$1" + this.getHours() % 12)
.replace(/(^|[^\\])hh/g, "$1" + String(h).padLeft(2, '0'))
.replace(/(^|[^\\])hh/g, "$1" + String(h)._padLeft(2, '0'))
.replace(/(^|[^\\])h/g, "$1" + h)
.replace(/(^|[^\\])mm/g, "$1" + String(this.getMinutes()).padLeft(2, '0'))
.replace(/(^|[^\\])mm/g, "$1" + String(this.getMinutes())._padLeft(2, '0'))
.replace(/(^|[^\\])m/g, "$1" + this.getMinutes())
.replace(/(^|[^\\])ss/g, "$1" + String(this.getSeconds()).padLeft(2, '0'))
.replace(/(^|[^\\])ss/g, "$1" + String(this.getSeconds())._padLeft(2, '0'))
.replace(/(^|[^\\])s/g, "$1" + this.getSeconds())
.replace(/(^|[^\\])S{3,}/g, "$1" + String(this.getMilliseconds()).padLeft(3, '0'))
.replace(/(^|[^\\])S{3,}/g, "$1" + String(this.getMilliseconds())._padLeft(3, '0'))
.replace(/(^|[^\\])S+/g, "$1" + String(this.getMilliseconds()))
.replace(/\\(.)/g, "$1")
.replace(/\[\[\\\]\]/g, "\\");
}
};
/**
* arrondi à la décimale choisie
* @param number nombre à arrondir
* @param decimalSize nombre de chiffres après la virgule
* @return la chaine formatée
*/
Math._roundDecimal = function(number, decimalSize) {
var pow = Math.pow(10, decimalSize);
return Math.round(number * pow) / pow;
}
\ No newline at end of file
......@@ -86,7 +86,7 @@ Number.prototype._format = function(format) {
}
valueAsStr = val.match(/(-|)(\d*)(?:.(\d*))?/);
if (format.zeroDigitSize > 0) {
valueAsStr[2] = valueAsStr[2].padLeft(format.zeroDigitSize, '0');
valueAsStr[2] = valueAsStr[2]._padLeft(format.zeroDigitSize, '0');
}
// ajoute des espaces
var entier = format.space !== undefined && format.groupingSize && format.groupingSize > 0
......@@ -96,12 +96,12 @@ Number.prototype._format = function(format) {
// formatage des décimales
var decimal = '';
if(format.decimalSize && format.decimalSize > 0) {
decimal = new String(parseFloat('.' + (valueAsStr[3]||'0'))._roundDecimal(format.decimalSize)).replace('0.', '');
decimal = new String(Math._roundDecimal(parseFloat('.' + (valueAsStr[3]||'0')),format.decimalSize)).replace('0.', '');
if (decimal == '0') {
decimal = '';
}
if (format.decimalZeroSize > 0) {
decimal = decimal.padRight(format.decimalZeroSize, '0');
decimal = decimal._padRight(format.decimalZeroSize, '0');
}
if (decimal !== '') {
decimal = format.dot + decimal;
......@@ -109,13 +109,3 @@ Number.prototype._format = function(format) {
}
return valueAsStr[1] + entier + decimal + unit;
}
/**
* arrondi à la décimale choisie
* @param decimalSize nombre de chiffres après la virgule
* @return la chaine formatée
*/
Number.prototype._roundDecimal = function(decimalSize) {
var pow = Math.pow(10, decimalSize);
return Math.round(this * pow) / pow;
}
\ No newline at end of file
......@@ -13,11 +13,11 @@ Formatter.choice = function (val, vals, arg) {
(etat === ">=" && val >= test) ||
(etat === ">" && val > test)
) {
return result.format(vals);
return result._format(vals);
}
}
return '';
}
};
/**
* {0, number, #,##0}
......@@ -31,7 +31,7 @@ Formatter.number = function (val, vals, arg) {
arg = "#,##0";
}
else if(arg.indexOf('{') > -1) {
arg = arg.format(vals);
arg = arg._format(vals);
}
// recupération de la langue : #,##0:fr
var params = {},
......@@ -41,7 +41,7 @@ Formatter.number = function (val, vals, arg) {
params.local = match[2];
}
return val._formatByPattern(match[1], params);
}
};
/**
* {0,date, dd/MM/yyyy}
......@@ -49,7 +49,7 @@ Formatter.number = function (val, vals, arg) {
*/
Formatter.date = function (val, vals, arg) {
if(arg && arg.indexOf('{') > -1) {
arg = arg.format(vals);
arg = arg._format(vals);
}
return arg !== undefined ? new Date(val).toStringFormat(arg) : '';
}
return arg !== undefined ? new Date(val)._toStringFormat(arg) : '';
};
......@@ -62,7 +62,7 @@ Formatter._parse = function (str, func) {
* @param liste d'arguments, array ou object
* @return string
*/
String.prototype.format = function (){
String.prototype._format = function (){
var args = arguments, str;
if (typeof args[0] === 'array' || typeof args[0] === 'object') {
args = args[0];
......@@ -83,16 +83,19 @@ String.prototype.format = function (){
* @param mode mode de répétition
* @return chaîne modifiée
*/
String.prototype.padLeft = function(n, str, mode) {
if (!n || n <= 0 || this.length >= n || str === undefined) {
String.prototype._padLeft = function(n, str, mode) {
if (!n || n <= 0 || this.length >= n || str instanceof String) {
return this;
}
}
if (str.length === 1) {
mode = '';
}
switch (mode) {
case 'r':
return ''.padRight(n, str).substring(0, n - this.length) + this;
return ''._padRight(n, str).substring(0, n - this.length) + this;
break;
case 'l':
return ''.padLeft(n, str).substring(0, n - this.length) + this;
return ''._padLeft(n, str).substring(0, n - this.length) + this;
break;
default :
var adding = n - this.length,
......@@ -109,22 +112,25 @@ String.prototype.padLeft = function(n, str, mode) {
* @param mode mode de répétition
* @return chaîne modifiée
*/
String.prototype.padRight = function(n, str, mode) {
if (!n || n <= 0 || this.length >= n || str === undefined) {
String.prototype._padRight = function(n, str, mode) {
if (!n || n <= 0 || this.length >= n || str instanceof String) {
return this;
}
if (str.length === 1) {
mode = '';
}
switch (mode) {
case 'l':
return this + ''.padLeft(n, str).substring(this.length, n);
return this + ''._padLeft(n, str).substring(this.length, n);
break;
case 'r':
return this + ''.padRight(n, str).substring(this.length, n);
return this + ''._padRight(n, str).substring(this.length, n);
break;
default :
var adding = n - this.length,
size = Math.trunc(adding / str.length + 1),
cut = adding % str.length;
return this + Array(size).join(str || ' ') + str.substring(0, cut)
return this + Array(size).join(str) + str.substring(0, cut)
break;
}
};
......@@ -5,6 +5,7 @@
<title>BakuJS - test</title>
<script type="text/javascript" src="baku.date.js"></script>
<script type="text/javascript" src="baku.dom.js"></script>
<script type="text/javascript" src="baku.math.js"></script>
<script type="text/javascript" src="baku.number.js"></script>
<script type="text/javascript" src="baku.string.js"></script>
<script type="text/javascript" src="baku.string.formater.js"></script>
......
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment