From bcfcb52e1b3fc9d4cb8ffff54bf61671c0d17cb5 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Thu, 2 Mar 2023 13:49:59 +0200 Subject: [PATCH] Transform - Make `TwoKTwenty3` the default mode - `debugColor(string, Level)` now resets VT100 colors so it can be used individually Logger - Added mode selection - Added two more unittests to test mode selection --- source/gogga/core.d | 58 ++++++++++++++++++++++++++++++++++++++++ source/gogga/transform.d | 15 ++++++++--- 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/source/gogga/core.d b/source/gogga/core.d index 268a19b..97e8e53 100644 --- a/source/gogga/core.d +++ b/source/gogga/core.d @@ -7,6 +7,11 @@ import std.array : join; import gogga.transform; import gogga.context; +version(unittest) +{ + import std.stdio : writeln; +} + unittest { GoggaLogger gLogger = new GoggaLogger(); @@ -20,6 +25,54 @@ unittest // TODO: Add debug stuff } +unittest +{ + GoggaLogger gLogger = new GoggaLogger(); + gLogger.mode(GoggaMode.TwoKTwenty3); + + // TODO: Somehow re-enable this please + // gLogger.log("Bruh\n"); + gLogger.info("This is an info message"); + gLogger.warn("This is a warning message"); + gLogger.error("This is an error message"); + + // TODO: Add debug stuff + + writeln(); +} + +unittest +{ + GoggaLogger gLogger = new GoggaLogger(); + gLogger.mode(GoggaMode.SIMPLE); + + // TODO: Somehow re-enable this please + // gLogger.log("Bruh\n"); + gLogger.info("This is an info message"); + gLogger.warn("This is a warning message"); + gLogger.error("This is an error message"); + + // TODO: Add debug stuff + + writeln(); +} + +unittest +{ + GoggaLogger gLogger = new GoggaLogger(); + gLogger.mode(GoggaMode.RUSTACEAN); + + // TODO: Somehow re-enable this please + // gLogger.log("Bruh\n"); + gLogger.info("This is an info message"); + gLogger.warn("This is a warning message"); + gLogger.error("This is an error message"); + + // TODO: Add debug stuff + + writeln(); +} + public class GoggaLogger : Logger { private GoggaTransform gTransform = new GoggaTransform(); @@ -35,6 +88,11 @@ public class GoggaLogger : Logger write(text); } + public void mode(GoggaMode mode) + { + gTransform.setMode(mode); + } + /** * Logs using the default context an arbitrary amount of arguments * specifically setting the context's level to ERROR diff --git a/source/gogga/transform.d b/source/gogga/transform.d index 6fea20d..e7c4df2 100644 --- a/source/gogga/transform.d +++ b/source/gogga/transform.d @@ -2,12 +2,13 @@ module gogga.transform; import dlog; import gogga.context; +import std.conv : to; // TODO: hehe easter egg TRADITIONAL, LIBERAL, UNHINGED public enum GoggaMode { - SIMPLE, TwoKTwenty3, + SIMPLE, RUSTACEAN } @@ -39,12 +40,12 @@ public class GoggaTransform : MessageTransform */ if(mode == GoggaMode.SIMPLE) { - finalOutput = cast(string)debugColor("["~to!(string)(level)~"] "~text); + finalOutput = cast(string)debugColor("["~to!(string)(level)~"] "~text, level); } /** * TwoKTwenty3 is: `[] (:) ` */ - else if(mode == Gogga.TwoKTwenty3) + else if(mode == GoggaMode.TwoKTwenty3) { /* Module information (and status debugColoring) */ string moduleInfo = cast(string)debugColor("["~context[1]~"]", level); @@ -64,6 +65,11 @@ public class GoggaTransform : MessageTransform return finalOutput; } + + public void setMode(GoggaMode mode) + { + this.mode = mode; + } } private byte[] debugColor(string text, Level level) @@ -93,6 +99,9 @@ private byte[] debugColor(string text, Level level) /* Switch back debugColor */ messageBytes ~= cast(byte[])[27, '[', '3', '9', 'm']; + /* Reset coloring */ + messageBytes ~= [27, '[', 'm']; + return messageBytes; }