Skip to content

Commit

Permalink
Fix bug 158046: Align Fluent nomenclature (#1378)
Browse files Browse the repository at this point in the history
Rename:
* flattenElements -> flattenPatternElements
* FluentElement -> PatternElement
* FluentValue -> Pattern
  • Loading branch information
mathjazz committed Sep 12, 2019
1 parent 4a73da9 commit 43ff87d
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 25 deletions.
6 changes: 3 additions & 3 deletions frontend/src/core/utils/fluent/flattenMessage.js
@@ -1,6 +1,6 @@
/* @flow */

import flattenElements from './flattenElements';
import flattenPatternElements from './flattenPatternElements';

import type { FluentMessage } from './types';

Expand All @@ -20,13 +20,13 @@ export default function flattenMessage(message: FluentMessage): FluentMessage {
const flatMessage = message.clone();

if (flatMessage.value && flatMessage.value.elements.length > 0) {
flatMessage.value.elements = flattenElements(flatMessage.value.elements);
flatMessage.value.elements = flattenPatternElements(flatMessage.value.elements);
}

if (flatMessage.attributes) {
flatMessage.attributes.forEach(attribute => {
if (attribute.value && attribute.value.elements.length > 0) {
attribute.value.elements = flattenElements(attribute.value.elements);
attribute.value.elements = flattenPatternElements(attribute.value.elements);
}
});
}
Expand Down
Expand Up @@ -2,19 +2,21 @@

import { TextElement, serializeExpression } from 'fluent-syntax';

import type { FluentElement } from './types';
import type { PatternElement } from './types';


/**
* Return a flattened list of Fluent elements.
* Return a flattened list of Pattern elements.
*
* @param {Array<SyntaxNode>} elements A list of Fluent SyntaxNode elements to flatten.
* @param {Array<PatternElement>} elements A list of Pattern elements to flatten.
*
* @returns {Array<TextElement|Placeable>} An array containing elements of type
* @returns {Array<PatternElement>} An array containing elements of type
* TextElement (merging serialized values of neighbour simple elements) and
* Placeable (representing select expressions).
*/
export default function flattenElements(elements: Array<FluentElement>): Array<FluentElement> {
export default function flattenPatternElements(
elements: Array<PatternElement>,
): Array<PatternElement> {
const flatElements = [];
let textFragments = [];

Expand All @@ -31,7 +33,7 @@ export default function flattenElements(elements: Array<FluentElement>): Array<F

// Flatten SelectExpression variant elements
element.expression.variants.forEach(variant => {
variant.value.elements = flattenElements(variant.value.elements);
variant.value.elements = flattenPatternElements(variant.value.elements);
});

flatElements.push(element);
Expand Down
4 changes: 2 additions & 2 deletions frontend/src/core/utils/fluent/index.js
Expand Up @@ -2,7 +2,7 @@

import areSupportedElements from './areSupportedElements';
import convertSyntax from './convertSyntax';
import flattenElements from './flattenElements';
import flattenPatternElements from './flattenPatternElements';
import flattenMessage from './flattenMessage';
import getEmptyMessage from './getEmptyMessage';
import getReconstructedMessage from './getReconstructedMessage';
Expand All @@ -20,7 +20,7 @@ import serializer from './serializer';
export default {
areSupportedElements,
convertSyntax,
flattenElements,
flattenPatternElements,
flattenMessage,
getEmptyMessage,
getReconstructedMessage,
Expand Down
12 changes: 6 additions & 6 deletions frontend/src/core/utils/fluent/types.js
Expand Up @@ -3,7 +3,7 @@
export type Variant = {
default: boolean,
key: string,
value: FluentValue,
value: Pattern,
};

export type SelectExpression = {
Expand All @@ -16,25 +16,25 @@ export type Placeable = {
expression: SelectExpression,
}

export type FluentElement = {|
export type PatternElement = {|
type: string,
value: string,
|} | Placeable;

export type FluentValue = {
elements: Array<FluentElement>,
export type Pattern = {
elements: Array<PatternElement>,
};

export type FluentAttribute = {
id: { name: string },
value: FluentValue,
value: Pattern,
};

export type FluentAttributes = Array<FluentAttribute>;

export type FluentMessage = {
type: string,
value: FluentValue,
value: Pattern,
attributes: ?FluentAttributes,
clone: () => FluentMessage,
equals: (any) => boolean,
Expand Down
Expand Up @@ -11,9 +11,9 @@ import type { EditorProps } from 'core/editor';
import type {
FluentAttribute,
FluentAttributes,
FluentElement,
PatternElement,
FluentMessage,
FluentValue,
Pattern,
} from 'core/utils/fluent/types';


Expand Down Expand Up @@ -339,7 +339,7 @@ export class RichTranslationFormBase extends React.Component<InternalProps> {
</tr>;
}

renderElements(elements: Array<FluentElement>, path: MessagePath, label: string): React.Node {
renderElements(elements: Array<PatternElement>, path: MessagePath, label: string): React.Node {
let indent = false;

return elements.map((element, index) => {
Expand Down Expand Up @@ -380,7 +380,7 @@ export class RichTranslationFormBase extends React.Component<InternalProps> {
});
}

renderValue(value: FluentValue, path: MessagePath, label?: string): React.Node {
renderValue(value: Pattern, path: MessagePath, label?: string): React.Node {
if (!value) {
return null;
}
Expand Down
8 changes: 4 additions & 4 deletions frontend/src/modules/fluentoriginal/components/RichString.js
Expand Up @@ -12,8 +12,8 @@ import type { Entity } from 'core/api';
import type {
FluentAttribute,
FluentAttributes,
FluentElement,
FluentValue,
PatternElement,
Pattern,
} from 'core/utils/fluent/types';


Expand Down Expand Up @@ -45,7 +45,7 @@ function renderItem(


function renderElements(
elements: Array<FluentElement>,
elements: Array<PatternElement>,
label: string,
): React.Node {
let indent = false;
Expand Down Expand Up @@ -85,7 +85,7 @@ function renderElements(
}


function renderValue(value: FluentValue, label?: string): React.Node {
function renderValue(value: Pattern, label?: string): React.Node {
if (!value) {
return null;
}
Expand Down

0 comments on commit 43ff87d

Please sign in to comment.