From ef876b7ed9ef217bf1d22ff5ec7a12dcbf88c20e Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Wed, 29 Nov 2023 15:36:48 -0600 Subject: [PATCH 1/8] adding console extensions --- src/Extensions/Console/ConsoleExtensions.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/Extensions/Console/ConsoleExtensions.cs diff --git a/src/Extensions/Console/ConsoleExtensions.cs b/src/Extensions/Console/ConsoleExtensions.cs new file mode 100644 index 0000000..8f2f5e8 --- /dev/null +++ b/src/Extensions/Console/ConsoleExtensions.cs @@ -0,0 +1,20 @@ + +namespace Calebs.Extensions.Console +{ + public static class ConsoleExtensions + { + public static void WriteLine (this System.ConsoleColor color, string text) + { + color.Write(text); + System.Console.WriteLine(); + } + + public static void Write (this System.ConsoleColor color, string text) + { + var currentColor = System.Console.ForegroundColor; + System.Console.ForegroundColor = color; + System.Console.Write(text); + System.Console.ForegroundColor = currentColor; + } + } +} From 56d7d16861d29cb86e2627979d497de3597845a3 Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Wed, 29 Nov 2023 15:38:12 -0600 Subject: [PATCH 2/8] version bump - Console Extensions --- src/Extensions/Extensions.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Extensions/Extensions.csproj b/src/Extensions/Extensions.csproj index 5b6c251..e820b51 100644 --- a/src/Extensions/Extensions.csproj +++ b/src/Extensions/Extensions.csproj @@ -10,7 +10,7 @@ Debug;Release;NET7 Calebs.Extensions Calebs.Extensions - 1.4.0 + 1.5.0 true Caleb Jenkins Caleb Jenkins From 277d054e7fcac542ba1e38fdcf61e6e3c66092a5 Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Mon, 1 Jan 2024 22:32:48 -0600 Subject: [PATCH 3/8] adding object extensions ToSafeString plus unit tests --- src/ExtensionTests/StringExtensionTests.cs | 19 +++++++++++++++++++ src/Extensions/ObjectExtensions.cs | 10 ++++++++++ src/Extensions/StringExtensions.cs | 1 + 3 files changed, 30 insertions(+) create mode 100644 src/Extensions/ObjectExtensions.cs diff --git a/src/ExtensionTests/StringExtensionTests.cs b/src/ExtensionTests/StringExtensionTests.cs index 3a63b21..573dfaa 100644 --- a/src/ExtensionTests/StringExtensionTests.cs +++ b/src/ExtensionTests/StringExtensionTests.cs @@ -28,3 +28,22 @@ public void ShouldReturnValueIfNotNull() } } +public class ObjectExtensionTests +{ + [Fact] + public void Nullable_Objects_Should_Return_Empty_String() + { + ExampleModel m = null; + var result = m.ToSafeString(); + result.IsNullOrEmpty().Should().BeTrue(); + } + + [Fact] + public void Int_Should_Return_String_Value() + { + int five = 5; + var result = five.ToSafeString(); + result.Should().Be("5"); + } +} + diff --git a/src/Extensions/ObjectExtensions.cs b/src/Extensions/ObjectExtensions.cs new file mode 100644 index 0000000..cdbc33b --- /dev/null +++ b/src/Extensions/ObjectExtensions.cs @@ -0,0 +1,10 @@ +namespace Calebs.Extensions; + +public static class ObjectExtensions +{ + public static string ToSafeString(this object o) + { + return o?.ToString() ?? string.Empty; + } +} + diff --git a/src/Extensions/StringExtensions.cs b/src/Extensions/StringExtensions.cs index 1872ad7..1981f59 100644 --- a/src/Extensions/StringExtensions.cs +++ b/src/Extensions/StringExtensions.cs @@ -36,3 +36,4 @@ public static string ValueOrEmpty(this string? value) return value; } } + From b46f752c82ca688bc933e9372512b243c845b798 Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Tue, 2 Jan 2024 15:42:34 -0600 Subject: [PATCH 4/8] adding logo to assets --- Assets/logo.png | Bin 0 -> 9789 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Assets/logo.png diff --git a/Assets/logo.png b/Assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a3048c1db4a6fbdc510b8b15122d5c9ea1da51ca GIT binary patch literal 9789 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

{6dF~0m&)P?TC1>&EnLy20EGH^^ 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 XDn5k~oiBBi00000NkvXXu0mjf;Zij% literal 0 HcmV?d00001 From ceeaa56613df60dea998a3776181de7b46484e8d Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Tue, 2 Jan 2024 16:00:57 -0600 Subject: [PATCH 5/8] updating readme to include logo --- README.md | 3 +++ src/Extensions/Extensions.csproj | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a211f52..1738d24 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,12 @@ [![NuGet](https://img.shields.io/nuget/dt/calebs.extensions.svg)](https://www.nuget.org/packages/calebs.extensions) [![NuGet](https://img.shields.io/nuget/vpre/calebs.extensions.svg)](https://www.nuget.org/packages/calebs.extensions) [![.github/workflows/ci.yml](https://github.com/calebjenkins/Calebs.Extensions/actions/workflows/ci.yml/badge.svg)](https://github.com/calebjenkins/Calebs.Extensions/actions/workflows/ci.yml) + +![Extensions Logo](./Assets/logo.png) # Calebs.Extensions Useful extension methods and attributes for working with enums, strings and lists. The majority of these extensions were born out of working with various models while building micro services. + ### Installing Calebs.Extensions You should install [Extensions with NuGet](https://www.nuget.org/packages/Calebs.Extensions): diff --git a/src/Extensions/Extensions.csproj b/src/Extensions/Extensions.csproj index e820b51..89ba40e 100644 --- a/src/Extensions/Extensions.csproj +++ b/src/Extensions/Extensions.csproj @@ -25,12 +25,16 @@ true LICENSE Calebs.Extensions - + logo.png Calebs.Extensions + + True + + True From 27208e32d45cd4f2607501073b5fec9a93614c4c Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Tue, 2 Jan 2024 16:04:14 -0600 Subject: [PATCH 6/8] update release history in readme. Bump version 1.5.0 --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 1738d24..7041497 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,9 @@ To use this helper - register `IFileIO` is your `DI` with `FileIO` as the implme - Compare - string?.ValueOrEmpty() +## ObjectExtensions +- ToSafeString() + ## ListExtensions - ToDelimitedList - ToUpper @@ -90,3 +93,4 @@ Merges to `main` publish to nuget as a major release. - 1.3.0 - added `IFileIO` - an interface + implementation for making common filesystem opperations easier to test - 1.3.1 - suppressed some test warnings and updated the GH workflows - 1.4.0 - added `CreatedDiretory` and `DeleteDirectory` to `IFileIO` +- 1.5.0 - Added package logo and `ToSafeString` for `ObjectExtensions` From 06b55adbe1dadf17ca4709ddea59a2fab1786968 Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Tue, 2 Jan 2024 17:27:41 -0600 Subject: [PATCH 7/8] update image link to readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7041497..9330563 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![NuGet](https://img.shields.io/nuget/vpre/calebs.extensions.svg)](https://www.nuget.org/packages/calebs.extensions) [![.github/workflows/ci.yml](https://github.com/calebjenkins/Calebs.Extensions/actions/workflows/ci.yml/badge.svg)](https://github.com/calebjenkins/Calebs.Extensions/actions/workflows/ci.yml) -![Extensions Logo](./Assets/logo.png) +![Extensions Logo](https://raw.githubusercontent.com/calebjenkins/Calebs.Extensions/develop/Assets/logo.png) # Calebs.Extensions Useful extension methods and attributes for working with enums, strings and lists. The majority of these extensions were born out of working with various models while building micro services. From 876deddaba321c3d73dfa21cb9adaf7ee14ae127 Mon Sep 17 00:00:00 2001 From: calebjenkins Date: Tue, 2 Jan 2024 17:31:37 -0600 Subject: [PATCH 8/8] move ObjectExtensionTests to seperate file --- src/ExtensionTests/ObjectExtensionTests.cs | 24 ++++++++++++++++++++++ src/ExtensionTests/StringExtensionTests.cs | 22 +------------------- 2 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 src/ExtensionTests/ObjectExtensionTests.cs diff --git a/src/ExtensionTests/ObjectExtensionTests.cs b/src/ExtensionTests/ObjectExtensionTests.cs new file mode 100644 index 0000000..84aa7d9 --- /dev/null +++ b/src/ExtensionTests/ObjectExtensionTests.cs @@ -0,0 +1,24 @@ + +namespace ExtensionTests; + +using Calebs.Extensions; + +public class ObjectExtensionTests +{ + [Fact] + public void Nullable_Objects_Should_Return_Empty_String() + { + ExampleModel m = null; + var result = m.ToSafeString(); + result.IsNullOrEmpty().Should().BeTrue(); + } + + [Fact] + public void Int_Should_Return_String_Value() + { + int five = 5; + var result = five.ToSafeString(); + result.Should().Be("5"); + } +} + diff --git a/src/ExtensionTests/StringExtensionTests.cs b/src/ExtensionTests/StringExtensionTests.cs index 573dfaa..383bc43 100644 --- a/src/ExtensionTests/StringExtensionTests.cs +++ b/src/ExtensionTests/StringExtensionTests.cs @@ -26,24 +26,4 @@ public void ShouldReturnValueIfNotNull() v2.Should().Be(value); } -} - -public class ObjectExtensionTests -{ - [Fact] - public void Nullable_Objects_Should_Return_Empty_String() - { - ExampleModel m = null; - var result = m.ToSafeString(); - result.IsNullOrEmpty().Should().BeTrue(); - } - - [Fact] - public void Int_Should_Return_String_Value() - { - int five = 5; - var result = five.ToSafeString(); - result.Should().Be("5"); - } -} - +} \ No newline at end of file