From e1f8e54e34f49a1bedd10e4f0f01d00efdec20ce Mon Sep 17 00:00:00 2001 From: vsavkin Date: Tue, 15 Mar 2016 15:00:51 -0700 Subject: [PATCH] feat(i18n): implement xmb serializer --- modules/angular2/pubspec.yaml | 2 ++ modules/angular2/src/i18n/xmb_serializer.ts | 12 +++++++ .../angular2/test/i18n/xmb_serializer_spec.ts | 35 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 modules/angular2/src/i18n/xmb_serializer.ts create mode 100644 modules/angular2/test/i18n/xmb_serializer_spec.ts diff --git a/modules/angular2/pubspec.yaml b/modules/angular2/pubspec.yaml index 82266fc98a..008fa2d8ef 100644 --- a/modules/angular2/pubspec.yaml +++ b/modules/angular2/pubspec.yaml @@ -20,6 +20,8 @@ dependencies: protobuf: '^0.5.0' source_span: '^1.0.0' stack_trace: '^1.1.1' + build: + git: git@github.com:dart-lang/build.git dev_dependencies: transformer_test: '^0.2.0' guinness: '^0.1.18' diff --git a/modules/angular2/src/i18n/xmb_serializer.ts b/modules/angular2/src/i18n/xmb_serializer.ts new file mode 100644 index 0000000000..f39cefb3a6 --- /dev/null +++ b/modules/angular2/src/i18n/xmb_serializer.ts @@ -0,0 +1,12 @@ +import {isPresent} from 'angular2/src/facade/lang'; +import {Message, id} from './message'; + +export function serialize(messages: Message[]): string { + let ms = messages.map((m) => _serializeMessage(m)).join(""); + return `${ms}`; +} + +function _serializeMessage(m: Message): string { + let desc = isPresent(m.description) ? ` desc='${m.description}'` : ""; + return `${m.content}`; +} \ No newline at end of file diff --git a/modules/angular2/test/i18n/xmb_serializer_spec.ts b/modules/angular2/test/i18n/xmb_serializer_spec.ts new file mode 100644 index 0000000000..1ef4d071c3 --- /dev/null +++ b/modules/angular2/test/i18n/xmb_serializer_spec.ts @@ -0,0 +1,35 @@ +import { + AsyncTestCompleter, + beforeEach, + ddescribe, + describe, + expect, + iit, + inject, + it, + xdescribe, + xit +} from 'angular2/testing_internal'; + +import {Message, id} from 'angular2/src/i18n/message'; +import {serialize} from 'angular2/src/i18n/xmb_serializer'; + +export function main() { + describe('Xmb Serialization', () => { + it("should return an empty message bundle for an empty list of messages", + () => { expect(serialize([])).toEqual(""); }); + + it("should serialize messages without desc", () => { + let m = new Message("content", "meaning", null); + let expected = `content`; + expect(serialize([m])).toEqual(expected); + }); + + it("should serialize messages with desc", () => { + let m = new Message("content", "meaning", "description"); + let expected = + `content`; + expect(serialize([m])).toEqual(expected); + }); + }); +}