From 513720f214c791652fa5985077d16bf872f949fc Mon Sep 17 00:00:00 2001 From: Andrea Vos Date: Sat, 5 Sep 2020 21:45:30 +0200 Subject: [PATCH] save canonical name of templates, use for multiple sources --- src/buildTemplate.js | 1 + src/classes.js | 8 +++++--- src/data.js | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/buildTemplate.js b/src/buildTemplate.js index 633d3cae0..d98f023c9 100644 --- a/src/buildTemplate.js +++ b/src/buildTemplate.js @@ -47,6 +47,7 @@ export const parseTemplates = (templatesRaw) => { yield [ aliases[0], new Template( + aliases[0], t.description, buildDict(function* () { for (let morpheme of MORPHEMES) { diff --git a/src/classes.js b/src/classes.js index d36c0ed85..66431c56b 100644 --- a/src/classes.js +++ b/src/classes.js @@ -126,7 +126,8 @@ const escape = s => { } export class Template { - constructor (description, morphemes, plural, pluralHonorific, sources = [], aliases = [], history = null) { + constructor (canonicalName, description, morphemes, plural, pluralHonorific, sources = [], aliases = [], history = null) { + this.canonicalName = canonicalName; this.description = description; this.morphemes = morphemes this.plural = plural; @@ -156,7 +157,7 @@ export class Template { } clone() { - return new Template(this.description, clone(this.morphemes), this.plural, this.pluralHonorific); + return new Template(this.canonicalName, this.description, clone(this.morphemes), this.plural, this.pluralHonorific); } equals(other) { @@ -170,6 +171,7 @@ export class Template { } return new Template( + this.canonicalName + '&' + other.canonicalName, Array.isArray(this.description) ? [...this.description, other.description] : [this.description, other.description], buildDict(function* (that, other) { for (let morpheme of MORPHEMES) { @@ -224,7 +226,7 @@ export class Template { m[MORPHEMES[parseInt(i)]] = data[parseInt(i)]; } - return new Template(data[data.length - 1], m, parseInt(data[MORPHEMES.length]) === 1, parseInt(data[MORPHEMES.length + 1]) === 1) + return new Template(m.pronoun_n, data[data.length - 1], m, parseInt(data[MORPHEMES.length]) === 1, parseInt(data[MORPHEMES.length + 1]) === 1) } } diff --git a/src/data.js b/src/data.js index e5dba2749..c97e53bb3 100644 --- a/src/data.js +++ b/src/data.js @@ -49,7 +49,7 @@ export const getSources = (selectedTemplate) => { let sources = {}; for (let multiple in sourcesForMultipleForms) { if (sourcesForMultipleForms.hasOwnProperty(multiple)) { - if (multiple === selectedTemplate.morphemes.pronoun_n) { + if (multiple === selectedTemplate.canonicalName) { sources[multiple] = sourcesForMultipleForms[multiple]; } }