diff --git a/source/documents/scripts/services/transformer.js.coffee b/source/documents/scripts/services/transformer.js.coffee index d7aab61..154bbdb 100644 --- a/source/documents/scripts/services/transformer.js.coffee +++ b/source/documents/scripts/services/transformer.js.coffee @@ -15,14 +15,12 @@ angular.module("sideBySide").factory("transformer", () -> lengths[l] = 0 if l not of lengths lengths[l]++ - # are all same length? - if _.size(_.compact(lengths)) <= 1 - return + # return if all are same length + return if _.size(_.compact(lengths)) <= 1 - uneven = [] - for i,j in lengths - if typeof i != "undefined" - uneven.push(i + " of length " + j) + uneven = (count + " of length " + length \ + for count,length in lengths \ + when typeof count isnt "undefined") details = [] while _.size(_.compact(lengths)) > 1 @@ -30,10 +28,9 @@ angular.module("sideBySide").factory("transformer", () -> maxdex = _.indexOf(lengths, _.max(lengths)) # least occuring count is higher than most occuring count - if mindex > maxdex - message = "Superfluous verses: " - else - message = "Missing verses after: " + message = if mindex > maxdex \ + then "Superfluous verses: " \ + else "Missing verses after: " # get last verses of translations with mindex verses lastVerses = _.map(translations.filter((translation) -> @@ -49,7 +46,7 @@ angular.module("sideBySide").factory("transformer", () -> throw "Poems with uneven number of verses: " + uneven.join(", ") + "." + - " (" + details.join(". ") + ")." + " (" + details.join("; ") + ")." check_lengths(translations) @@ -59,8 +56,7 @@ angular.module("sideBySide").factory("transformer", () -> verses: [] } - for translation in translations - data.meta.push(translation.meta) + data.meta.push(translation.meta) for translation in translations id = 0 while true diff --git a/source/documents/tests/services/transformer.js.coffee b/source/documents/tests/services/transformer.js.coffee index 560da4f..436e82d 100644 --- a/source/documents/tests/services/transformer.js.coffee +++ b/source/documents/tests/services/transformer.js.coffee @@ -96,6 +96,13 @@ test("transformer", () -> transformer = injector.get("transformer") deepEqual(transformer(english, czech, polish), expected) + # Test transformation still works when we remove Polish + expected.meta = expected.meta.slice(0, 2) + expected.verses = _.map(expected.verses, (translations) -> + return translations.slice(0, 2) + ) + deepEqual(transformer(english, czech), expected) + # Test various error messages as we remove items czech.content.pop() throws(() ->