You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`examples/factory/`: Factory-style definitions (using `External.create(caller: ...)` or `External::Pod.new`).
33
34
-`examples/docs/`: Sample data files (JSON, XML) used by examples.
34
35
35
36
## Development
@@ -52,4 +53,4 @@
52
53
## Architecture
53
54
-**Composite Pattern**: Used for `Internal` nodes to treat individual objects and compositions uniformly.
54
55
-**Builder Pattern**: `CallableTree::Node::Internal::Builder` and `CallableTree::Node::External::Builder` provide a fluent interface for constructing complex trees.
55
-
56
+
-**Pod Pattern**: `CallableTree::Node::Internal::Pod` and `CallableTree::Node::External::Pod` enable inline node creation via `External.create` / `Internal.create` factory methods with proc-based behaviors.
Copy file name to clipboardExpand all lines: callable_tree.gemspec
+7-1Lines changed: 7 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,13 @@ Gem::Specification.new do |spec|
9
9
spec.email=['jsmmr@icloud.com']
10
10
11
11
spec.summary='Builds executable trees of callable nodes with flexible strategies like seek, broadcast, and compose.'
12
-
spec.description='CallableTree provides a framework for organizing complex logic into a tree of callable nodes. It allows you to chain execution from a root node to leaf nodes based on matching conditions. Key features include multiple traversal strategies: `seekable` (like nested `if`/`case`), `broadcastable` (one-to-many execution), and `composable` (pipelined processing). Supports both class-based and builder-style definitions.'
12
+
spec.description=<<~DESC
13
+
CallableTree provides a framework for organizing complex logic into a tree of callable nodes.
14
+
It allows you to chain execution from a root node to leaf nodes based on matching conditions.
15
+
Key features include multiple traversal strategies: `seekable` (like nested `if`/`case`),
16
+
`broadcastable` (one-to-many execution), and `composable` (pipelined processing).
17
+
Supports class-based, builder-style and factory-style definitions.
0 commit comments