diff --git a/.run/add education.run.xml b/.run/add education.run.xml
new file mode 100644
index 0000000..ddde93d
--- /dev/null
+++ b/.run/add education.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/edit education.run.xml b/.run/edit education.run.xml
new file mode 100644
index 0000000..5338d53
--- /dev/null
+++ b/.run/edit education.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/get educations.run.xml b/.run/get educations.run.xml
new file mode 100644
index 0000000..624a308
--- /dev/null
+++ b/.run/get educations.run.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Resumer/Helpers.cs b/Resumer/Helpers.cs
index d9d8be0..d4b1eb5 100644
--- a/Resumer/Helpers.cs
+++ b/Resumer/Helpers.cs
@@ -1,6 +1,7 @@
using System.Collections;
using System.Collections.Immutable;
using System.Text;
+using System.Text.RegularExpressions;
using Spectre.Console;
namespace Resumer;
@@ -21,13 +22,14 @@ public static partial class Utility
///
/// the type of the prompt input
/// the prompt message
+ /// a of nullable
public static TextPrompt SimplePrompt(string message) =>
- new TextPrompt(message).AllowEmpty().HideDefaultValue().DefaultValue(default);
+ new TextPrompt(message).AllowEmpty().HideDefaultValue().DefaultValue(default(T?));
///
/// the default value
- public static TextPrompt SimplePrompt(string message, T defaultValue) => new TextPrompt(message)
- .AllowEmpty().DefaultValue(defaultValue).HideDefaultValue();
+ public static TextPrompt SimplePrompt(string message, T? defaultValue) =>
+ SimplePrompt(message).DefaultValue(defaultValue);
///
/// converts a string to camel case
@@ -56,7 +58,7 @@ public static string PrintDuration(DateOnly? startDate, DateOnly? endDate = null
startDate == null ? string.Empty : $"{startDate:MMM yyyy} - {endDate?.ToString("MMM yyyy") ?? "present"}";
}
-public static class Extensions
+public static partial class Extensions
{
// todo: inquire about default value being a property - spectre console pr/iss
// .DefaultValue(textPrompt);
@@ -75,6 +77,7 @@ public static string Print(this object? value) =>
null => string.Empty,
bool bit => bit ? "true" : "false",
string txt => txt,
+ Enum @enum => NextToUppercaseRegex().Replace(@enum.ToString(), "$1 $2").Replace('_', '-'),
DictionaryEntry pair => $"{pair.Key.Print()}: {pair.Value.Print()}",
IDictionary dictionary => string.Join("\n", dictionary.Cast