diff options
Diffstat (limited to 'lib/models')
-rw-r--r-- | lib/models/book.js | 2 | ||||
-rw-r--r-- | lib/models/fs.js | 3 | ||||
-rw-r--r-- | lib/models/languages.js | 26 |
3 files changed, 29 insertions, 2 deletions
diff --git a/lib/models/book.js b/lib/models/book.js index 030223f..8f8ab74 100644 --- a/lib/models/book.js +++ b/lib/models/book.js @@ -248,7 +248,7 @@ Book.createFromParent = function createFromParent(parent, language) { logger: parent.getLogger(), ignore: Ignore().add(ignore), language: language, - fs: FS.reduceScope(parent.getFS(), language) + fs: FS.reduceScope(parent.getContentFS(), language) }); }; diff --git a/lib/models/fs.js b/lib/models/fs.js index f124da8..ab65dd5 100644 --- a/lib/models/fs.js +++ b/lib/models/fs.js @@ -33,7 +33,8 @@ FS.prototype.getRoot = function() { */ FS.prototype.isInScope = function(filename) { var rootPath = this.getRoot(); - filename = path.resolve(rootPath, filename); + filename = path.join(rootPath, filename); + return PathUtil.isInRoot(rootPath, filename); }; diff --git a/lib/models/languages.js b/lib/models/languages.js index c64857f..6c19cba 100644 --- a/lib/models/languages.js +++ b/lib/models/languages.js @@ -1,6 +1,7 @@ var Immutable = require('immutable'); var File = require('./file'); +var Language = require('./language'); var Languages = Immutable.Record({ file: File(), @@ -34,4 +35,29 @@ Languages.prototype.getLanguage = function(lang) { return this.getList().get(lang); }; + +/** + 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.path + }); + list = list.set(lang.getID(), lang); + }); + + return Languages({ + file: file, + list: list + }); +} + module.exports = Languages; |