bcdd-result 0.13.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -4
- data/CHANGELOG.md +46 -17
- data/README.md +381 -220
- 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 +5 -4
- 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 +6 -6
- data/lib/bcdd/context.rb +91 -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: 78e33ee42ffa86c0eea3c6dc522ae0bec103bb70d24a1f31103b60cda7bead6e
|
4
|
+
data.tar.gz: 8919d24f1b3d903ff164717e5930f8a4e17c66ede1a93f303ffacceacdc31bb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c504322d2243a50ee18f1369a110af0c5fa45b07c55628f7dac30bacc2348299e1d2207474dcd15fc0a92ec071016763c4b02a0a9bbc2b402a20cf8a7b77b66
|
7
|
+
data.tar.gz: fd5706097d3057addfe8b9eccb3094ef3a3567e90f93bc3218b54ec192879a39d6a68464cac75b8606b1df25f55736a3b69c02682937816c710df5c17d8abcea
|
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,76 @@
|
|
1
1
|
- [\[Unreleased\]](#unreleased)
|
2
|
-
- [
|
2
|
+
- [1.0.0 - 2024-03-16](#100---2024-03-16)
|
3
3
|
- [Added](#added)
|
4
4
|
- [Changed](#changed)
|
5
|
-
- [\[0.
|
5
|
+
- [\[0.13.0\] - 2024-02-01](#0130---2024-02-01)
|
6
6
|
- [Added](#added-1)
|
7
7
|
- [Changed](#changed-1)
|
8
|
-
- [\[0.
|
8
|
+
- [\[0.12.0\] - 2024-01-07](#0120---2024-01-07)
|
9
9
|
- [Added](#added-2)
|
10
10
|
- [Changed](#changed-2)
|
11
|
-
- [\[0.
|
11
|
+
- [\[0.11.0\] - 2024-01-02](#0110---2024-01-02)
|
12
12
|
- [Added](#added-3)
|
13
|
-
- [\[0.9.1\] - 2023-12-12](#091---2023-12-12)
|
14
13
|
- [Changed](#changed-3)
|
15
|
-
|
16
|
-
- [\[0.9.0\] - 2023-12-12](#090---2023-12-12)
|
14
|
+
- [\[0.10.0\] - 2023-12-31](#0100---2023-12-31)
|
17
15
|
- [Added](#added-4)
|
16
|
+
- [\[0.9.1\] - 2023-12-12](#091---2023-12-12)
|
18
17
|
- [Changed](#changed-4)
|
19
|
-
- [
|
18
|
+
- [Fixed](#fixed)
|
19
|
+
- [\[0.9.0\] - 2023-12-12](#090---2023-12-12)
|
20
20
|
- [Added](#added-5)
|
21
21
|
- [Changed](#changed-5)
|
22
|
-
|
23
|
-
- [\[0.7.0\] - 2023-10-27](#070---2023-10-27)
|
22
|
+
- [\[0.8.0\] - 2023-12-11](#080---2023-12-11)
|
24
23
|
- [Added](#added-6)
|
25
24
|
- [Changed](#changed-6)
|
26
|
-
- [
|
25
|
+
- [Removed](#removed)
|
26
|
+
- [\[0.7.0\] - 2023-10-27](#070---2023-10-27)
|
27
27
|
- [Added](#added-7)
|
28
28
|
- [Changed](#changed-7)
|
29
|
-
- [\[0.
|
29
|
+
- [\[0.6.0\] - 2023-10-11](#060---2023-10-11)
|
30
30
|
- [Added](#added-8)
|
31
|
-
- [\[0.4.0\] - 2023-09-28](#040---2023-09-28)
|
32
|
-
- [Added](#added-9)
|
33
31
|
- [Changed](#changed-8)
|
32
|
+
- [\[0.5.0\] - 2023-10-09](#050---2023-10-09)
|
33
|
+
- [Added](#added-9)
|
34
|
+
- [\[0.4.0\] - 2023-09-28](#040---2023-09-28)
|
35
|
+
- [Added](#added-10)
|
36
|
+
- [Changed](#changed-9)
|
34
37
|
- [Removed](#removed-1)
|
35
38
|
- [\[0.3.0\] - 2023-09-26](#030---2023-09-26)
|
36
|
-
- [Added](#added-10)
|
37
|
-
- [\[0.2.0\] - 2023-09-26](#020---2023-09-26)
|
38
39
|
- [Added](#added-11)
|
40
|
+
- [\[0.2.0\] - 2023-09-26](#020---2023-09-26)
|
41
|
+
- [Added](#added-12)
|
39
42
|
- [Removed](#removed-2)
|
40
43
|
- [\[0.1.0\] - 2023-09-25](#010---2023-09-25)
|
41
|
-
- [Added](#added-
|
44
|
+
- [Added](#added-13)
|
42
45
|
|
43
46
|
## [Unreleased]
|
44
47
|
|
48
|
+
## 1.0.0 - 2024-03-16
|
49
|
+
|
50
|
+
### Added
|
51
|
+
|
52
|
+
- 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`.
|
53
|
+
- Add `BCDD::Result#type?` to check if the given type is the result type.
|
54
|
+
- Add `BCDD::Result#is?` as an alias for `BCDD::Result#type?`.
|
55
|
+
- 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`.
|
56
|
+
|
57
|
+
> Note: All the methods above are available for the `BCDD::Context` as well.
|
58
|
+
|
59
|
+
### Changed
|
60
|
+
|
61
|
+
- **(BREAKING)** Replace transitions with event_logs concept.
|
62
|
+
- The `BCDD::Result::Transitions` module was renamed to `BCDD::Result::EventLogs`
|
63
|
+
- The `BCDD::Result.transitions` to `BCDD::Result.event_logs`.
|
64
|
+
|
65
|
+
- **(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.
|
66
|
+
|
67
|
+
- **(BREAKING)** Replace trasitions metadata `:ids_tree`, and `:ids_matrix` with `:ids` property. This property is a hash with the following keys:
|
68
|
+
- `:tree`, a graph/tree representation of the transitions ids.
|
69
|
+
- `:level_parent`, a hash with the level (depth) of each transition and its parent id.
|
70
|
+
- `:matrix`, a matrix representation of the transitions ids. It is a simplification of the `:tree` property.
|
71
|
+
|
72
|
+
- 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.
|
73
|
+
|
45
74
|
## [0.13.0] - 2024-02-01
|
46
75
|
|
47
76
|
### Added
|