Add conditional attributes support with unless#35
Conversation
- Introduced `Treaty::Attribute::Option::Conditionals::UnlessConditional` to exclude attributes based on runtime conditions. - Added usage examples for both `if` and `unless` in documentation. - Created comprehensive unit tests to validate `UnlessConditional` behavior under various scenarios. - Updated `docs/examples.md` and `docs/attributes.md` to showcase new `unless` usage. - Demonstrated usage of `unless` in `Serialization::ProductDto`.
- Removed redundant `status` and `published_at` attribute configurations. - Replaced multiple occurrences of `if` conditions with `unless` for consistency. - Added `password` and `meta_description` attribute configurations. - Simplified structure by eliminating unused attributes and consolidating options.
- Introduced comprehensive RSpec tests for `Serialization::ProductDto`. - Validated required attributes, type constraints, and default values. - Ensured conditional logic (`if`/`unless`) is covered for attributes like `sku`, `tags`, `admin_notes`, etc. - Included tests for nested objects, e.g., `manufacturer` with child attributes.
- Added `Conditionals vs Modifiers` section to clarify the role of `if` and `unless` options. - Expanded processing sequence explanations for request and response transformations. - Highlighted the distinction between conditional evaluation, validation, and transformation phases. - Added examples illustrating conditionals, validators, and ordered modifiers during transformations. - Enhanced guidance around debugging and execution order.
- Updated error examples to include `unless` in addition to `if`. - Clarified error messages for improperly configured conditional attributes. - Added examples using `unless` with `lambda`, safe navigation, and arguments. - Enhanced tips to highlight the evaluation order and usage distinctions between `if` and `unless`.
🔍 Code Review: Add Conditional Attributes Support with
|
No description provided.