lib/constants.js
/**
* Copyright 2017 MaddHacker
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
/**
* Decalre a class for date construction
* Giving array of strings of day and month
*
* @returns {string} strings for date and month
*
* @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/class
*/
class DateConst {
constructor() {
this._months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
this._days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
}
month(num) { return this._months[num]; }
day(num) { return this._days[num]; }
}
/**
* Extending DateConst class to a new derived class enDateConst
* The reserved 'super' keyword is for making super-constructor
* calls and allows access to parent methods.
*
* Note: In derived classes, super() must be called before 'this'
* Leaving this out will cause a reference error.
*/
class enDateConst extends DateConst {
constructor() { super(); }
}
class frDateConst extends DateConst {
constructor() {
super();
this._months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
this._days = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
}
}
class itDateConst extends DateConst {
constructor() {
super();
this._months = ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'];
this._days = ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'];
}
}
class deDateConst extends DateConst {
constructor() {
super();
this._months = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
this._days = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'];
}
}
class esDateConst extends DateConst {
constructor() {
super();
this._months = ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'];
this._days = ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'];
}
}
module.exports = {
en: enDateConst,
fr: frDateConst,
it: itDateConst,
de: deDateConst,
es: esDateConst
}