From ef540f480f4d22e9585936320e40c71dc368aaae Mon Sep 17 00:00:00 2001 From: "Nuno \"Omega Leo\" Diogo" Date: Sat, 4 May 2024 18:27:22 +0100 Subject: [PATCH 1/4] Create dotnet.yml --- .github/workflows/dotnet.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/dotnet.yml diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml new file mode 100644 index 0000000..217f7cb --- /dev/null +++ b/.github/workflows/dotnet.yml @@ -0,0 +1,28 @@ +# This workflow will build a .NET project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net + +name: .NET + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore + - name: Test + run: dotnet test --no-build --verbosity normal From f4629e1709798d995ba0b0f2fd9bec9668a4f488 Mon Sep 17 00:00:00 2001 From: "Nuno \"Omega Leo\" Diogo" Date: Wed, 3 Jul 2024 21:58:23 +0100 Subject: [PATCH 2/4] v1.0.0 Release (#1) * Fixed dependency * Updates to NeoDictionary --- .../Extensions/ArrayExtensions.cs | 2 +- OmegaLeo.HelperLib/Models/NeoDictionary.cs | 24 +++++++++++++++++++ OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj | 4 +++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/OmegaLeo.HelperLib/Extensions/ArrayExtensions.cs b/OmegaLeo.HelperLib/Extensions/ArrayExtensions.cs index 00ad8a4..fc4a942 100644 --- a/OmegaLeo.HelperLib/Extensions/ArrayExtensions.cs +++ b/OmegaLeo.HelperLib/Extensions/ArrayExtensions.cs @@ -1,4 +1,4 @@ -using UnityFlow.DocumentationHelper.Library.Attributes; +using NetFlow.DocumentationHelper.Library.Attributes; namespace GameDevLibrary.Extensions { diff --git a/OmegaLeo.HelperLib/Models/NeoDictionary.cs b/OmegaLeo.HelperLib/Models/NeoDictionary.cs index af3ba14..12861fb 100644 --- a/OmegaLeo.HelperLib/Models/NeoDictionary.cs +++ b/OmegaLeo.HelperLib/Models/NeoDictionary.cs @@ -2,11 +2,13 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using NetFlow.DocumentationHelper.Library.Attributes; namespace GameDevLibrary.Models { // Inspiration: https://www.youtube.com/watch?v=x-ejym1WdjE [Serializable] + [Documentation("NeoDictionary", "Dictionary like class created to make it easier to display dictionaries in game engines like Unity")] public class NeoDictionary { public List> Items = new List>(); @@ -66,6 +68,28 @@ namespace GameDevLibrary.Models public bool Any() => Items.Any(); public bool Any(Func, bool> predicate) => Items.Any(predicate); + + public IEnumerable> Where(Func, bool> predicate) => + Items.Where(predicate); + + public NeoDictionaryItem? FirstOrDefault() => Items.FirstOrDefault(); + + public NeoDictionaryItem? FirstOrDefault(Func, bool> predicate) => + Items.FirstOrDefault(predicate); + + public NeoDictionaryItem? LastOrDefault() => Items.LastOrDefault(); + + public NeoDictionaryItem? LastOrDefault(Func, bool> predicate) => + Items.LastOrDefault(predicate); + + public void Remove(TKey key) + { + var index = Items.FindIndex(x => x.Key.Equals(key)); + + Items.RemoveAt(index); + } + + public void RemoveAt(int index) => Items.RemoveAt(index); } [Serializable] diff --git a/OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj b/OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj index 1e91962..cd876f5 100644 --- a/OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj +++ b/OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj @@ -7,10 +7,12 @@ 0.0.2 Omega Leo's Helper Library Nuno "Omega Leo" Diogo + https://github.com/omegaleo/HelperLib + https://github.com/omegaleo/HelperLib - + From 45ff4b509cd49ae4d73ccdd9d2b99231d29e8b85 Mon Sep 17 00:00:00 2001 From: "Nuno \"Omega Leo\" Diogo" Date: Wed, 3 Jul 2024 22:00:43 +0100 Subject: [PATCH 3/4] Create nuget-publish.yml --- .github/workflows/nuget-publish.yml | 42 +++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/workflows/nuget-publish.yml diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml new file mode 100644 index 0000000..cc99ff0 --- /dev/null +++ b/.github/workflows/nuget-publish.yml @@ -0,0 +1,42 @@ +name: Publish Nuget Packages +on: + release: + types: [created] +jobs: + get-release: + name: Get Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Get release + id: get_release + uses: bruceadams/get-release@v1.2.3 + env: + GITHUB_TOKEN: ${{ secrets.TOKEN }} + outputs: + upload_url: ${{ steps.get_release.outputs.upload_url }} + publish_doc_helper: + runs-on: ubuntu-latest + needs: [get-release] + steps: + - uses: actions/checkout@v2 + - name: Setup .Net Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: '7.0.x' + - name: Update Project Version + run: sed -i "s/\(\([0-9]\+\.\)\{2\}\)\([0-9]\+\)/\1${{ github.event.release.tag_name }}/" "./NetFlow.DocumentationHelper.Library/NetFlow.DocumentationHelper.Library.csproj" + - name: Create Nuget Package + run: dotnet pack "./NetFlow.DocumentationHelper.Library/NetFlow.DocumentationHelper.Library.csproj" -c Release /p:Version=${{ github.event.release.tag_name }} /p:PackageReleaseNotes="See https://github.com/omegaleo/Netflow.DocumentationHelper/releases/tag/${{ github.event.release.tag_name }}" + - name: Publish Nuget Package + run: dotnet nuget push ./NetFlow.DocumentationHelper.Library/bin/Release/NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg --api-key ${{ secrets.nuget_api_key }} --source https://api.nuget.org/v3/index.json --skip-duplicate + - name: Upload assets to release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.TOKEN }} + with: + upload_url: ${{ needs.get-release.outputs.upload_url }} + asset_path: ./NetFlow.DocumentationHelper.Library/bin/Release/NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg + asset_name: NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg + asset_content_type: application/zip From 7c72140a631e0c5d65915d3a16f443f7e229b3d1 Mon Sep 17 00:00:00 2001 From: "Nuno \"Omega Leo\" Diogo" Date: Wed, 3 Jul 2024 22:18:56 +0100 Subject: [PATCH 4/4] Update nuget-publish.yml --- .github/workflows/nuget-publish.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index cc99ff0..72fd518 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -26,17 +26,17 @@ jobs: with: dotnet-version: '7.0.x' - name: Update Project Version - run: sed -i "s/\(\([0-9]\+\.\)\{2\}\)\([0-9]\+\)/\1${{ github.event.release.tag_name }}/" "./NetFlow.DocumentationHelper.Library/NetFlow.DocumentationHelper.Library.csproj" + run: sed -i "s/\(\([0-9]\+\.\)\{2\}\)\([0-9]\+\)/\1${{ github.event.release.tag_name }}/" "./OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj" - name: Create Nuget Package - run: dotnet pack "./NetFlow.DocumentationHelper.Library/NetFlow.DocumentationHelper.Library.csproj" -c Release /p:Version=${{ github.event.release.tag_name }} /p:PackageReleaseNotes="See https://github.com/omegaleo/Netflow.DocumentationHelper/releases/tag/${{ github.event.release.tag_name }}" + run: dotnet pack "./OmegaLeo.HelperLib/OmegaLeo.HelperLib.csproj" -c Release /p:Version=${{ github.event.release.tag_name }} /p:PackageReleaseNotes="See https://github.com/omegaleo/OmegaLeo.HelperLib/releases/tag/${{ github.event.release.tag_name }}" - name: Publish Nuget Package - run: dotnet nuget push ./NetFlow.DocumentationHelper.Library/bin/Release/NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg --api-key ${{ secrets.nuget_api_key }} --source https://api.nuget.org/v3/index.json --skip-duplicate + run: dotnet nuget push ./OmegaLeo.HelperLib/bin/Release/OmegaLeo.HelperLib.${{ github.event.release.tag_name }}.nupkg --api-key ${{ secrets.nuget_api_key }} --source https://api.nuget.org/v3/index.json --skip-duplicate - name: Upload assets to release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.TOKEN }} with: upload_url: ${{ needs.get-release.outputs.upload_url }} - asset_path: ./NetFlow.DocumentationHelper.Library/bin/Release/NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg - asset_name: NetFlow.DocumentationHelper.Library.${{ github.event.release.tag_name }}.nupkg + asset_path: ./OmegaLeo.HelperLib/bin/Release/OmegaLeo.HelperLib.${{ github.event.release.tag_name }}.nupkg + asset_name: OmegaLeo.HelperLib.${{ github.event.release.tag_name }}.nupkg asset_content_type: application/zip