callable_tree 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +19 -5
- data/.github/workflows/codeql-analysis.yml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +128 -0
- data/.ruby-version +1 -1
- data/AGENTS.md +56 -0
- data/CHANGELOG.md +11 -0
- data/CONTRIBUTING.md +68 -0
- data/Gemfile +4 -2
- data/README.md +195 -21
- data/callable_tree.gemspec +8 -2
- data/examples/builder/external-verbosify.rb +3 -2
- data/examples/builder/hooks.rb +2 -1
- data/examples/builder/identity.rb +3 -2
- data/examples/builder/internal-broadcastable.rb +2 -1
- data/examples/builder/internal-composable.rb +2 -1
- data/examples/builder/internal-seekable.rb +3 -2
- data/examples/builder/logging.rb +3 -2
- data/examples/class/external-verbosify.rb +3 -2
- data/examples/class/hooks.rb +2 -1
- data/examples/class/identity.rb +3 -2
- data/examples/class/internal-broadcastable.rb +2 -1
- data/examples/class/internal-composable.rb +2 -1
- data/examples/class/internal-seekable.rb +3 -2
- data/examples/class/logging.rb +3 -2
- data/examples/factory/external-verbosify.rb +69 -0
- data/examples/factory/hooks.rb +67 -0
- data/examples/factory/identity.rb +93 -0
- data/examples/factory/internal-broadcastable.rb +37 -0
- data/examples/factory/internal-composable.rb +37 -0
- data/examples/factory/internal-seekable.rb +71 -0
- data/examples/factory/logging.rb +121 -0
- data/lib/callable_tree/node/builder.rb +1 -0
- data/lib/callable_tree/node/external/pod.rb +91 -0
- data/lib/callable_tree/node/external/verbose.rb +1 -1
- data/lib/callable_tree/node/external.rb +1 -0
- data/lib/callable_tree/node/hooks/terminator.rb +1 -1
- data/lib/callable_tree/node/internal/pod.rb +91 -0
- data/lib/callable_tree/node/internal/{strategyable.rb → strategizable.rb} +4 -4
- data/lib/callable_tree/node/internal.rb +2 -2
- data/lib/callable_tree/version.rb +1 -1
- data/lib/callable_tree.rb +3 -1
- data/mise.toml +2 -0
- metadata +26 -15
- data/Gemfile.lock +0 -34
metadata
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: callable_tree
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.12
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- jsmmr
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies: []
|
|
13
|
-
description:
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
description: |
|
|
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.
|
|
16
18
|
email:
|
|
17
19
|
- jsmmr@icloud.com
|
|
18
20
|
executables: []
|
|
@@ -25,10 +27,12 @@ files:
|
|
|
25
27
|
- ".gitignore"
|
|
26
28
|
- ".rspec"
|
|
27
29
|
- ".rubocop.yml"
|
|
30
|
+
- ".rubocop_todo.yml"
|
|
28
31
|
- ".ruby-version"
|
|
32
|
+
- AGENTS.md
|
|
29
33
|
- CHANGELOG.md
|
|
34
|
+
- CONTRIBUTING.md
|
|
30
35
|
- Gemfile
|
|
31
|
-
- Gemfile.lock
|
|
32
36
|
- LICENSE.txt
|
|
33
37
|
- README.md
|
|
34
38
|
- Rakefile
|
|
@@ -53,33 +57,42 @@ files:
|
|
|
53
57
|
- examples/docs/animals.xml
|
|
54
58
|
- examples/docs/fruits.json
|
|
55
59
|
- examples/docs/fruits.xml
|
|
60
|
+
- examples/factory/external-verbosify.rb
|
|
61
|
+
- examples/factory/hooks.rb
|
|
62
|
+
- examples/factory/identity.rb
|
|
63
|
+
- examples/factory/internal-broadcastable.rb
|
|
64
|
+
- examples/factory/internal-composable.rb
|
|
65
|
+
- examples/factory/internal-seekable.rb
|
|
66
|
+
- examples/factory/logging.rb
|
|
56
67
|
- lib/callable_tree.rb
|
|
57
68
|
- lib/callable_tree/node.rb
|
|
58
69
|
- lib/callable_tree/node/builder.rb
|
|
59
70
|
- lib/callable_tree/node/external.rb
|
|
60
71
|
- lib/callable_tree/node/external/builder.rb
|
|
72
|
+
- lib/callable_tree/node/external/pod.rb
|
|
61
73
|
- lib/callable_tree/node/external/verbose.rb
|
|
62
74
|
- lib/callable_tree/node/hooks/caller.rb
|
|
63
75
|
- lib/callable_tree/node/hooks/matcher.rb
|
|
64
76
|
- lib/callable_tree/node/hooks/terminator.rb
|
|
65
77
|
- lib/callable_tree/node/internal.rb
|
|
66
78
|
- lib/callable_tree/node/internal/builder.rb
|
|
79
|
+
- lib/callable_tree/node/internal/pod.rb
|
|
80
|
+
- lib/callable_tree/node/internal/strategizable.rb
|
|
67
81
|
- lib/callable_tree/node/internal/strategy.rb
|
|
68
82
|
- lib/callable_tree/node/internal/strategy/broadcast.rb
|
|
69
83
|
- lib/callable_tree/node/internal/strategy/compose.rb
|
|
70
84
|
- lib/callable_tree/node/internal/strategy/seek.rb
|
|
71
|
-
- lib/callable_tree/node/internal/strategyable.rb
|
|
72
85
|
- lib/callable_tree/node/root.rb
|
|
73
86
|
- lib/callable_tree/version.rb
|
|
87
|
+
- mise.toml
|
|
74
88
|
homepage: https://github.com/jsmmr/ruby_callable_tree
|
|
75
89
|
licenses:
|
|
76
90
|
- MIT
|
|
77
91
|
metadata:
|
|
78
92
|
homepage_uri: https://github.com/jsmmr/ruby_callable_tree
|
|
79
93
|
source_code_uri: https://github.com/jsmmr/ruby_callable_tree
|
|
80
|
-
changelog_uri: https://github.com/jsmmr/ruby_callable_tree/blob/v0.3.
|
|
94
|
+
changelog_uri: https://github.com/jsmmr/ruby_callable_tree/blob/v0.3.12/CHANGELOG.md
|
|
81
95
|
rubygems_mfa_required: 'true'
|
|
82
|
-
post_install_message:
|
|
83
96
|
rdoc_options: []
|
|
84
97
|
require_paths:
|
|
85
98
|
- lib
|
|
@@ -94,10 +107,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
94
107
|
- !ruby/object:Gem::Version
|
|
95
108
|
version: '0'
|
|
96
109
|
requirements: []
|
|
97
|
-
rubygems_version:
|
|
98
|
-
signing_key:
|
|
110
|
+
rubygems_version: 4.0.3
|
|
99
111
|
specification_version: 4
|
|
100
|
-
summary: Builds
|
|
101
|
-
|
|
102
|
-
`if` or `case` expressions.
|
|
112
|
+
summary: Builds executable trees of callable nodes with flexible strategies like seek,
|
|
113
|
+
broadcast, and compose.
|
|
103
114
|
test_files: []
|
data/Gemfile.lock
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
callable_tree (0.3.10)
|
|
5
|
-
|
|
6
|
-
GEM
|
|
7
|
-
remote: https://rubygems.org/
|
|
8
|
-
specs:
|
|
9
|
-
diff-lcs (1.5.0)
|
|
10
|
-
rake (13.0.6)
|
|
11
|
-
rspec (3.12.0)
|
|
12
|
-
rspec-core (~> 3.12.0)
|
|
13
|
-
rspec-expectations (~> 3.12.0)
|
|
14
|
-
rspec-mocks (~> 3.12.0)
|
|
15
|
-
rspec-core (3.12.0)
|
|
16
|
-
rspec-support (~> 3.12.0)
|
|
17
|
-
rspec-expectations (3.12.1)
|
|
18
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
19
|
-
rspec-support (~> 3.12.0)
|
|
20
|
-
rspec-mocks (3.12.1)
|
|
21
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
|
22
|
-
rspec-support (~> 3.12.0)
|
|
23
|
-
rspec-support (3.12.0)
|
|
24
|
-
|
|
25
|
-
PLATFORMS
|
|
26
|
-
x86_64-darwin-22
|
|
27
|
-
|
|
28
|
-
DEPENDENCIES
|
|
29
|
-
callable_tree!
|
|
30
|
-
rake (~> 13.0)
|
|
31
|
-
rspec (~> 3.0)
|
|
32
|
-
|
|
33
|
-
BUNDLED WITH
|
|
34
|
-
2.3.26
|