philiprehberger-rule_engine 0.5.0 → 0.6.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2026fcc1381bc79e330be05f98fc32579e148927732b54f6d77b77361961fead
4
- data.tar.gz: add66f1853785eefe6ec55ab5f365396ef991092429e0695025e79b97d64ced3
3
+ metadata.gz: e08d674239c8901ba2c58bae6c7cbe01926f8bb470044c9680b33ae5ff5fb7b3
4
+ data.tar.gz: 350a45f7df08868695ba081cba228bfccedf3f03f2e51b35cd15fd470f03ebc3
5
5
  SHA512:
6
- metadata.gz: e9e1dd6aa851778dd10fa1b8b953571b99222cb557c0c68553102884abe05a07e742efad8eabea6c6527289692fb81c14acafeb764e90c77c2d90d3e8b47a13e
7
- data.tar.gz: 534e0b19a5bd9f986ec474b4a789aa7efa46a3512e970f3df32056aed4954f749744610281c54409aa3a8d544f5142a51497c43a3aff9e72f311b2e6532d91c7
6
+ metadata.gz: 87eba8f4d5e1a3335704f47131db323041a166b945004da978f437e78ce9742e67ee8f3813e3cfcd5381560270f8d4536131c6aa4e3a4f3d2112477e9f2560a3
7
+ data.tar.gz: c9bd1f19cc640545c667d96e0abd01eed73e1ebd1ac9c030e081642ac3b3c66e50fa2600fcf5cc4d0871d12c7b4f6566b328e2ecd37ef6876ea35455e135546b
data/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.6.0] - 2026-05-07
11
+
12
+ ### Added
13
+ - `Engine#rule_count` — total number of registered rules (including disabled).
14
+
10
15
  ## [0.5.0] - 2026-04-22
11
16
 
12
17
  ### Added
@@ -63,6 +68,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
63
68
  - Rule evaluation against arbitrary facts
64
69
  - Results with rule name and action output
65
70
 
71
+ [0.6.0]: https://github.com/philiprehberger/rb-rule-engine/releases/tag/v0.6.0
66
72
  [0.5.0]: https://github.com/philiprehberger/rb-rule-engine/releases/tag/v0.5.0
67
73
  [0.4.0]: https://github.com/philiprehberger/rb-rule-engine/releases/tag/v0.4.0
68
74
  [0.3.0]: https://github.com/philiprehberger/rb-rule-engine/releases/tag/v0.3.0
data/README.md CHANGED
@@ -143,6 +143,7 @@ engine.evaluate({ ready: true }) # => [{ rule: 'dynamic', result: 'go' }]
143
143
  engine.remove_rule('dynamic')
144
144
 
145
145
  engine.rule_names # => []
146
+ engine.rule_count # => 0
146
147
  engine.clear_rules! # removes all rules and resets stats
147
148
  ```
148
149
 
@@ -245,6 +246,7 @@ end
245
246
  | `#remove_rule(name)` | Remove a rule by name |
246
247
  | `Engine#clear_rules!` | Remove all rules and reset statistics |
247
248
  | `Engine#rule_names` | Return an array of rule names in declaration order |
249
+ | `Engine#rule_count` | Total number of registered rules including disabled |
248
250
  | `#disable_rule(name)` | Disable a rule (skipped during evaluation) |
249
251
  | `#enable_rule(name)` | Re-enable a disabled rule |
250
252
  | `#chain(*rule_names)` | Execute rules sequentially as a pipeline |
@@ -110,6 +110,13 @@ module Philiprehberger
110
110
  @rules.map(&:name)
111
111
  end
112
112
 
113
+ # Total number of registered rules, including disabled ones.
114
+ #
115
+ # @return [Integer]
116
+ def rule_count
117
+ @rules.length
118
+ end
119
+
113
120
  # Evaluate all rules against the given facts.
114
121
  #
115
122
  # @param facts [Object] the facts to evaluate
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Philiprehberger
4
4
  module RuleEngine
5
- VERSION = '0.5.0'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: philiprehberger-rule_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philip Rehberger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-22 00:00:00.000000000 Z
11
+ date: 2026-05-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A lightweight rule engine with a declarative DSL for defining conditions
14
14
  and actions. Supports priority-based ordering, rule tagging with selective evaluation,