-
Notifications
You must be signed in to change notification settings - Fork 0
Add Chain Patterns and Better Documentation #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…g. Rearranged some test files to make more sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request adds significant new functionality to the PatternKit library by implementing chain patterns and expanding the pattern set across behavioral, creational, and structural categories. The changes include new chain builders for sequential operations, strategy composition for complex workflows, and comprehensive examples demonstrating real-world usage patterns.
- Adds chain pattern implementations including ActionChain and ChainBuilder for sequential operations
- Expands builder patterns with MutableBuilder and Composer for object construction workflows
- Introduces extensive example applications including transaction pipelines, API gateways, and composed notification strategies
- Implements source generators for strategy pattern code generation
- Updates project structure to support multi-targeting (net8.0 and net9.0)
Reviewed Changes
Copilot reviewed 69 out of 69 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| PatternKit.Core | Adds core chain builders, mutable builders, and composer patterns |
| PatternKit.Examples | Comprehensive examples showing transaction processing, API routing, and strategy composition |
| PatternKit.Generators | Source generators for automatic strategy pattern implementation |
| Test projects | Extensive test coverage using TinyBDD framework with multi-target support |
| Project configurations | Updates to support dual targeting and package references |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. Thanks for integrating Codecov - We've got you covered ☂️ |
Code Coverage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 99 out of 100 changed files in this pull request and generated 8 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| .And("classifying -2", s => Execute(s, -2)) | ||
| .Then("should fall through to fallback 'other'", r => r is { Matched: true, Value: "other" }) | ||
| .AssertPassed(); | ||
| return; |
Copilot
AI
Sep 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Unnecessary return statement at the end of an async Task method. This can be removed as the method will return naturally.
| }) | ||
| .And("paid by card", _ => ctx.Result!.Value.Code == "paid" && ctx.Log.Any(x => x.Contains("auth: captured"))) | ||
| .AssertPassed(); | ||
| return; |
Copilot
AI
Sep 15, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The local function Pipe() is defined after a return statement, making it unreachable. Move the local function definition before the return statement or restructure the method.
No description provided.