bcdd-result 0.13.0 → 1.1.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 +4 -4
- data/.rubocop.yml +4 -4
- data/CHANGELOG.md +61 -21
- data/README.md +397 -227
- data/Rakefile +1 -1
- data/Steepfile +1 -1
- data/examples/multiple_listeners/Rakefile +8 -8
- data/examples/multiple_listeners/app/models/account/owner_creation.rb +1 -1
- data/examples/multiple_listeners/app/models/user/creation.rb +1 -1
- data/examples/multiple_listeners/app/models/user/token/creation.rb +1 -1
- data/examples/multiple_listeners/config/initializers/bcdd.rb +0 -2
- data/examples/multiple_listeners/config.rb +3 -3
- data/examples/multiple_listeners/db/setup.rb +2 -3
- data/examples/multiple_listeners/lib/bcdd/result/event_logs_record.rb +27 -0
- data/examples/multiple_listeners/lib/event_logs_listener/stdout.rb +60 -0
- data/examples/multiple_listeners/lib/runtime_breaker.rb +1 -1
- data/examples/service_objects/Rakefile +36 -0
- data/examples/service_objects/app/models/account/member.rb +10 -0
- data/examples/service_objects/app/models/account.rb +11 -0
- data/examples/service_objects/app/models/user/token.rb +7 -0
- data/examples/service_objects/app/models/user.rb +15 -0
- data/examples/service_objects/app/services/account/owner_creation.rb +47 -0
- data/examples/service_objects/app/services/application_service.rb +79 -0
- data/examples/service_objects/app/services/user/creation.rb +56 -0
- data/examples/service_objects/app/services/user/token/creation.rb +37 -0
- data/examples/service_objects/config/boot.rb +17 -0
- data/examples/service_objects/config/initializers/bcdd.rb +9 -0
- data/examples/service_objects/config.rb +20 -0
- data/examples/service_objects/db/setup.rb +49 -0
- data/examples/single_listener/Rakefile +5 -5
- data/examples/single_listener/app/models/account/owner_creation.rb +1 -1
- data/examples/single_listener/app/models/user/creation.rb +1 -1
- data/examples/single_listener/app/models/user/token/creation.rb +1 -1
- data/examples/single_listener/config/initializers/bcdd.rb +0 -2
- data/examples/single_listener/config.rb +1 -1
- data/examples/single_listener/lib/{single_transitions_listener.rb → single_event_logs_listener.rb} +32 -23
- data/lib/bcdd/{result/context → context}/callable_and_then.rb +6 -5
- data/lib/bcdd/{result/context → context}/expectations/mixin.rb +1 -1
- data/lib/bcdd/{result/context → context}/expectations.rb +2 -2
- data/lib/bcdd/context/failure.rb +9 -0
- data/lib/bcdd/{result/context → context}/mixin.rb +2 -2
- data/lib/bcdd/{result/context → context}/success.rb +11 -11
- data/lib/bcdd/context.rb +115 -0
- data/lib/bcdd/failure.rb +23 -0
- data/lib/bcdd/result/_self.rb +198 -0
- data/lib/bcdd/result/callable_and_then/caller.rb +1 -1
- data/lib/bcdd/result/config/switchers/addons.rb +2 -2
- data/lib/bcdd/result/config/switchers/constant_aliases.rb +1 -3
- data/lib/bcdd/result/config/switchers/features.rb +5 -5
- data/lib/bcdd/result/config/switchers/pattern_matching.rb +1 -1
- data/lib/bcdd/result/config.rb +7 -5
- data/lib/bcdd/result/contract/type_checker.rb +4 -0
- data/lib/bcdd/result/{transitions → event_logs}/config.rb +5 -3
- data/lib/bcdd/result/{transitions → event_logs}/listener.rb +5 -5
- data/lib/bcdd/result/{transitions → event_logs}/listeners.rb +17 -17
- data/lib/bcdd/result/{transitions → event_logs}/tracking/disabled.rb +1 -1
- data/lib/bcdd/result/{transitions → event_logs}/tracking/enabled.rb +15 -13
- data/lib/bcdd/result/{transitions → event_logs}/tracking.rb +4 -3
- data/lib/bcdd/result/{transitions → event_logs}/tree.rb +27 -11
- data/lib/bcdd/result/event_logs.rb +27 -0
- data/lib/bcdd/result/failure.rb +1 -3
- data/lib/bcdd/result/success.rb +1 -3
- data/lib/bcdd/result/version.rb +1 -1
- data/lib/bcdd/result.rb +23 -191
- data/lib/bcdd/success.rb +23 -0
- data/sig/bcdd/context.rbs +175 -0
- data/sig/bcdd/failure.rbs +13 -0
- data/sig/bcdd/result/config.rbs +1 -3
- data/sig/bcdd/result/context.rbs +2 -174
- data/sig/bcdd/result/contract.rbs +1 -0
- data/sig/bcdd/result/{transitions.rbs → event_logs.rbs} +19 -19
- data/sig/bcdd/result.rbs +13 -31
- data/sig/bcdd/success.rbs +13 -0
- metadata +41 -24
- data/examples/multiple_listeners/lib/bcdd/result/transitions_record.rb +0 -28
- data/examples/multiple_listeners/lib/transitions_listener/stdout.rb +0 -54
- data/lib/bcdd/result/context/failure.rb +0 -9
- data/lib/bcdd/result/context.rb +0 -93
- data/lib/bcdd/result/failure/methods.rb +0 -21
- data/lib/bcdd/result/success/methods.rb +0 -21
- data/lib/bcdd/result/transitions.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65c4eca57e46f7c344320d812e2bf95d4ca6e1779fe03d3f0903baf747998f4c
|
4
|
+
data.tar.gz: ca668bce32035b2dacf6d4b5cde769b3da0302ebb005ae6d920267b79b4e1777
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 659e109cbf9782ea83b351d775b4d854d40769cefc5193590cc45fcd2b4857e8b321fb92be479ab5ecff0affcc765c2d8ddafabcc8a57fad6f2a7f5c4be5f9c5
|
7
|
+
data.tar.gz: 047f861d008d7f4831d3b351c7162e4eda9108febad3ae425a14dbe9e092502010de44d56854f9c04e3c61a470ba6f6fc7ff1931a0ac8952460930b7e650f637
|
data/.rubocop.yml
CHANGED
@@ -18,7 +18,7 @@ AllCops:
|
|
18
18
|
|
19
19
|
Lint/RescueException:
|
20
20
|
Exclude:
|
21
|
-
- lib/bcdd/result/
|
21
|
+
- lib/bcdd/result/event_logs/tracking/enabled.rb
|
22
22
|
|
23
23
|
Layout/LineLength:
|
24
24
|
Max: 120
|
@@ -34,7 +34,7 @@ Lint/UnderscorePrefixedVariableName:
|
|
34
34
|
|
35
35
|
Lint/UnusedMethodArgument:
|
36
36
|
Exclude:
|
37
|
-
- lib/bcdd/result/
|
37
|
+
- lib/bcdd/result/event_logs/listener.rb
|
38
38
|
|
39
39
|
Style/AccessModifierDeclarations:
|
40
40
|
Enabled: false
|
@@ -73,12 +73,12 @@ Metrics/BlockLength:
|
|
73
73
|
|
74
74
|
Metrics/ClassLength:
|
75
75
|
Exclude:
|
76
|
-
- lib/bcdd/result.rb
|
76
|
+
- lib/bcdd/result/_self.rb
|
77
77
|
- test/**/*.rb
|
78
78
|
|
79
79
|
Metrics/AbcSize:
|
80
80
|
Exclude:
|
81
|
-
- lib/bcdd/result/
|
81
|
+
- lib/bcdd/result/event_logs/tracking/enabled.rb
|
82
82
|
|
83
83
|
Minitest/MultipleAssertions:
|
84
84
|
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -1,47 +1,87 @@
|
|
1
1
|
- [\[Unreleased\]](#unreleased)
|
2
|
-
- [
|
2
|
+
- [1.1.0 - 2024-03-25](#110---2024-03-25)
|
3
3
|
- [Added](#added)
|
4
|
-
|
5
|
-
- [\[0.12.0\] - 2024-01-07](#0120---2024-01-07)
|
4
|
+
- [1.0.0 - 2024-03-16](#100---2024-03-16)
|
6
5
|
- [Added](#added-1)
|
7
|
-
- [Changed](#changed
|
8
|
-
- [\[0.
|
6
|
+
- [Changed](#changed)
|
7
|
+
- [\[0.13.0\] - 2024-02-01](#0130---2024-02-01)
|
9
8
|
- [Added](#added-2)
|
9
|
+
- [Changed](#changed-1)
|
10
|
+
- [\[0.12.0\] - 2024-01-07](#0120---2024-01-07)
|
11
|
+
- [Added](#added-3)
|
10
12
|
- [Changed](#changed-2)
|
13
|
+
- [\[0.11.0\] - 2024-01-02](#0110---2024-01-02)
|
14
|
+
- [Added](#added-4)
|
15
|
+
- [Changed](#changed-3)
|
11
16
|
- [\[0.10.0\] - 2023-12-31](#0100---2023-12-31)
|
12
|
-
- [Added](#added-
|
17
|
+
- [Added](#added-5)
|
13
18
|
- [\[0.9.1\] - 2023-12-12](#091---2023-12-12)
|
14
|
-
- [Changed](#changed-
|
19
|
+
- [Changed](#changed-4)
|
15
20
|
- [Fixed](#fixed)
|
16
21
|
- [\[0.9.0\] - 2023-12-12](#090---2023-12-12)
|
17
|
-
- [Added](#added-
|
18
|
-
- [Changed](#changed-4)
|
19
|
-
- [\[0.8.0\] - 2023-12-11](#080---2023-12-11)
|
20
|
-
- [Added](#added-5)
|
22
|
+
- [Added](#added-6)
|
21
23
|
- [Changed](#changed-5)
|
24
|
+
- [\[0.8.0\] - 2023-12-11](#080---2023-12-11)
|
25
|
+
- [Added](#added-7)
|
26
|
+
- [Changed](#changed-6)
|
22
27
|
- [Removed](#removed)
|
23
28
|
- [\[0.7.0\] - 2023-10-27](#070---2023-10-27)
|
24
|
-
- [Added](#added-6)
|
25
|
-
- [Changed](#changed-6)
|
26
|
-
- [\[0.6.0\] - 2023-10-11](#060---2023-10-11)
|
27
|
-
- [Added](#added-7)
|
28
|
-
- [Changed](#changed-7)
|
29
|
-
- [\[0.5.0\] - 2023-10-09](#050---2023-10-09)
|
30
29
|
- [Added](#added-8)
|
31
|
-
- [
|
30
|
+
- [Changed](#changed-7)
|
31
|
+
- [\[0.6.0\] - 2023-10-11](#060---2023-10-11)
|
32
32
|
- [Added](#added-9)
|
33
33
|
- [Changed](#changed-8)
|
34
|
+
- [\[0.5.0\] - 2023-10-09](#050---2023-10-09)
|
35
|
+
- [Added](#added-10)
|
36
|
+
- [\[0.4.0\] - 2023-09-28](#040---2023-09-28)
|
37
|
+
- [Added](#added-11)
|
38
|
+
- [Changed](#changed-9)
|
34
39
|
- [Removed](#removed-1)
|
35
40
|
- [\[0.3.0\] - 2023-09-26](#030---2023-09-26)
|
36
|
-
- [Added](#added-
|
41
|
+
- [Added](#added-12)
|
37
42
|
- [\[0.2.0\] - 2023-09-26](#020---2023-09-26)
|
38
|
-
- [Added](#added-
|
43
|
+
- [Added](#added-13)
|
39
44
|
- [Removed](#removed-2)
|
40
45
|
- [\[0.1.0\] - 2023-09-25](#010---2023-09-25)
|
41
|
-
- [Added](#added-
|
46
|
+
- [Added](#added-14)
|
42
47
|
|
43
48
|
## [Unreleased]
|
44
49
|
|
50
|
+
## 1.1.0 - 2024-03-25
|
51
|
+
|
52
|
+
### Added
|
53
|
+
|
54
|
+
- Add some Hash's methods to `BCDD::Context`. They are:
|
55
|
+
- `#slice` to extract only the desired keys.
|
56
|
+
- `#[]`, `#dig`, `#fetch` to access the values.
|
57
|
+
- `#values_at` and `#fetch_values` to get the values of the desired keys.
|
58
|
+
|
59
|
+
## 1.0.0 - 2024-03-16
|
60
|
+
|
61
|
+
### Added
|
62
|
+
|
63
|
+
- Add the `BCDD::Success` and `BCDD::Failure` modules. They are key to checking whether a result is a success or a failure independently of whether it is a `BCDD::Result` or a `BCDD::Context`.
|
64
|
+
- Add `BCDD::Result#type?` to check if the given type is the result type.
|
65
|
+
- Add `BCDD::Result#is?` as an alias for `BCDD::Result#type?`.
|
66
|
+
- Add `BCDD::Result#method_missing` to allow the type checking through method calls. For example, `result.ok?` will check if the result type is `:ok`.
|
67
|
+
|
68
|
+
> Note: All the methods above are available for the `BCDD::Context` as well.
|
69
|
+
|
70
|
+
### Changed
|
71
|
+
|
72
|
+
- **(BREAKING)** Replace transitions with event_logs concept.
|
73
|
+
- The `BCDD::Result::Transitions` module was renamed to `BCDD::Result::EventLogs`
|
74
|
+
- The `BCDD::Result.transitions` to `BCDD::Result.event_logs`.
|
75
|
+
|
76
|
+
- **(BREAKING)** Change `BCDD::Result#deconstruct_keys` to return a hash with the keys `:type` and `:value` when one of these keys is present. Otherwise, it will return the value itself.
|
77
|
+
|
78
|
+
- **(BREAKING)** Replace trasitions metadata `:ids_tree`, and `:ids_matrix` with `:ids` property. This property is a hash with the following keys:
|
79
|
+
- `:tree`, a graph/tree representation of the transitions ids.
|
80
|
+
- `:level_parent`, a hash with the level (depth) of each transition and its parent id.
|
81
|
+
- `:matrix`, a matrix representation of the transitions ids. It is a simplification of the `:tree` property.
|
82
|
+
|
83
|
+
- Transform `BCDD::Result::Context` into `BCDD::Context`. But a constant alias was added to keep the old name. You can use `BCDD::Result::Context` or `BCDD::Context` to access the same class.
|
84
|
+
|
45
85
|
## [0.13.0] - 2024-02-01
|
46
86
|
|
47
87
|
### Added
|