From 93fd99148f64bb2ff559cb5da28624393aa37069 Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Sat, 7 Nov 2020 15:48:01 +0100 Subject: [PATCH] Experiment with the concept of Transformers --- lib/core/transformers/base.dart | 15 +++++++++++++++ .../emoji.dart} | 12 ++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 lib/core/transformers/base.dart rename lib/core/{processors/emoji_processor.dart => transformers/emoji.dart} (56%) diff --git a/lib/core/transformers/base.dart b/lib/core/transformers/base.dart new file mode 100644 index 00000000..ebd639e7 --- /dev/null +++ b/lib/core/transformers/base.dart @@ -0,0 +1,15 @@ +import 'package:gitjournal/core/note.dart'; + +export 'package:gitjournal/core/note.dart'; + +abstract class NoteReadTransformer { + Future onRead(Note note); +} + +abstract class NoteWriteTransformer { + Future onWrite(Note note); +} + +// ReadTransformersLoader(folderConfig) -> ... +// WriteTransformerLoader(folderConfig) -> ... +// -> test it out again diff --git a/lib/core/processors/emoji_processor.dart b/lib/core/transformers/emoji.dart similarity index 56% rename from lib/core/processors/emoji_processor.dart rename to lib/core/transformers/emoji.dart index f1ffab8a..39998e78 100644 --- a/lib/core/processors/emoji_processor.dart +++ b/lib/core/transformers/emoji.dart @@ -1,17 +1,21 @@ import 'package:flutter_emoji/flutter_emoji.dart'; -import 'package:gitjournal/core/note.dart'; +import 'base.dart'; -class EmojiProcessor { +class EmojiProcessor implements NoteReadTransformer, NoteWriteTransformer { static final _emojiParser = EmojiParser(); - void onSave(Note note) { + @override + Future onRead(Note note) async { note.title = _emojiParser.emojify(note.title); note.body = _emojiParser.emojify(note.body); + return note; } - void onLoad(Note note) { + @override + Future onWrite(Note note) async { note.body = _emojiParser.unemojify(note.body); note.title = _emojiParser.unemojify(note.title); + return note; } }