Files
2016-05-02 16:37:47 +02:00

72 lines
1.3 KiB
JavaScript

var Immutable = require('immutable');
var File = require('./file');
var Language = require('./language');
var Languages = Immutable.Record({
file: File(),
list: Immutable.OrderedMap()
});
Languages.prototype.getFile = function() {
return this.get('file');
};
Languages.prototype.getList = function() {
return this.get('list');
};
/**
Get default languages
@return {Language}
*/
Languages.prototype.getDefaultLanguage = function() {
return this.getList().first();
};
/**
Get a language by its ID
@param {String} lang
@return {Language}
*/
Languages.prototype.getLanguage = function(lang) {
return this.getList().get(lang);
};
/**
Return count of langs
@return {Number}
*/
Languages.prototype.getCount = function() {
return this.getList().size;
};
/**
Create a languages list from a JS object
@param {File}
@param {Array}
@return {Language}
*/
Languages.createFromList = function(file, langs) {
var list = Immutable.OrderedMap();
langs.forEach(function(lang) {
lang = Language({
title: lang.title,
path: lang.ref
});
list = list.set(lang.getID(), lang);
});
return Languages({
file: file,
list: list
});
};
module.exports = Languages;