bcdd-result 0.13.0 → 1.0.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 +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
@@ -0,0 +1,175 @@
|
|
1
|
+
class BCDD::Context < BCDD::Result
|
2
|
+
EXPECTED_OUTCOME: String
|
3
|
+
|
4
|
+
SourceMethodArity: ^(Method) -> Integer
|
5
|
+
|
6
|
+
attr_reader acc: Hash[Symbol, untyped]
|
7
|
+
|
8
|
+
def initialize: (
|
9
|
+
type: Symbol,
|
10
|
+
value: untyped,
|
11
|
+
?source: untyped,
|
12
|
+
?expectations: BCDD::Result::Contract::Evaluator,
|
13
|
+
?terminal: bool
|
14
|
+
) -> void
|
15
|
+
|
16
|
+
def and_then: (?Symbol, **untyped) ?{ (Hash[Symbol, untyped]) -> untyped } -> untyped
|
17
|
+
|
18
|
+
def and_then!: (untyped, **untyped) -> untyped
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def call_and_then_source_method: (Symbol, Hash[Symbol, untyped]) -> BCDD::Context
|
23
|
+
|
24
|
+
def call_and_then_callable!: (untyped, value: untyped, injected_value: untyped, method_name: (Symbol | nil)) -> BCDD::Context
|
25
|
+
|
26
|
+
def ensure_result_object: (untyped, origin: Symbol) -> BCDD::Context
|
27
|
+
|
28
|
+
def raise_unexpected_outcome_error: (BCDD::Context | untyped, Symbol) -> void
|
29
|
+
end
|
30
|
+
|
31
|
+
class BCDD::Context
|
32
|
+
class Error < BCDD::Result::Error
|
33
|
+
class InvalidExposure < BCDD::Context::Error
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class BCDD::Context
|
39
|
+
class Success < BCDD::Context
|
40
|
+
include BCDD::Success
|
41
|
+
|
42
|
+
FetchValues: Proc
|
43
|
+
|
44
|
+
def and_expose: (Symbol, Array[Symbol], terminal: bool) -> BCDD::Context::Success
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.Success: (Symbol, **untyped) -> BCDD::Context::Success
|
48
|
+
end
|
49
|
+
|
50
|
+
module BCDD::Context::CallableAndThen
|
51
|
+
class Caller < BCDD::Result::CallableAndThen::Caller
|
52
|
+
module KeyArgs
|
53
|
+
def self.parameters?: (untyped) -> bool
|
54
|
+
|
55
|
+
def self.invalid_arity: (untyped, Symbol) -> BCDD::Result::CallableAndThen::Error::InvalidArity
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.call: (
|
59
|
+
untyped source,
|
60
|
+
value: untyped,
|
61
|
+
injected_value: untyped,
|
62
|
+
method_name: (Symbol | nil),
|
63
|
+
) -> BCDD::Context
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def self.call_proc!: (
|
68
|
+
untyped source,
|
69
|
+
Hash[Symbol, untyped] value,
|
70
|
+
nil injected_value
|
71
|
+
) -> BCDD::Context
|
72
|
+
|
73
|
+
def self.call_method!: (
|
74
|
+
untyped source,
|
75
|
+
Method method,
|
76
|
+
Hash[Symbol, untyped] value,
|
77
|
+
nil injected_value
|
78
|
+
) -> BCDD::Context
|
79
|
+
|
80
|
+
def self.callable_method: (
|
81
|
+
untyped source,
|
82
|
+
(Symbol | nil) method_name
|
83
|
+
) -> ::Method
|
84
|
+
|
85
|
+
def self.ensure_result_object: (
|
86
|
+
untyped source,
|
87
|
+
untyped value,
|
88
|
+
BCDD::Context result
|
89
|
+
) -> BCDD::Context
|
90
|
+
|
91
|
+
def self.expected_result_object: () -> singleton(BCDD::Context)
|
92
|
+
|
93
|
+
def self.expected_outcome: () -> String
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
class BCDD::Context
|
98
|
+
class Failure < BCDD::Context
|
99
|
+
include BCDD::Failure
|
100
|
+
|
101
|
+
def and_expose: (Symbol, Array[Symbol], **untyped) -> BCDD::Context::Failure
|
102
|
+
end
|
103
|
+
|
104
|
+
def self.Failure: (Symbol, **untyped) -> BCDD::Context::Failure
|
105
|
+
end
|
106
|
+
|
107
|
+
class BCDD::Context
|
108
|
+
module Mixin
|
109
|
+
Factory: singleton(BCDD::Result::Mixin::Factory)
|
110
|
+
|
111
|
+
module Methods
|
112
|
+
def Success: (Symbol, **untyped) -> BCDD::Context::Success
|
113
|
+
|
114
|
+
def Failure: (Symbol, **untyped) -> BCDD::Context::Failure
|
115
|
+
|
116
|
+
private
|
117
|
+
|
118
|
+
def _ResultAs: (singleton(BCDD::Context), Symbol, untyped, ?terminal: bool) -> untyped
|
119
|
+
end
|
120
|
+
|
121
|
+
module Addons
|
122
|
+
module Continue
|
123
|
+
include BCDD::Context::Mixin::Methods
|
124
|
+
|
125
|
+
private
|
126
|
+
|
127
|
+
def Continue: (**untyped) -> BCDD::Context::Success
|
128
|
+
end
|
129
|
+
|
130
|
+
module Given
|
131
|
+
include BCDD::Context::Mixin::Methods
|
132
|
+
|
133
|
+
private
|
134
|
+
|
135
|
+
def Given: (*untyped) -> BCDD::Context::Success
|
136
|
+
end
|
137
|
+
|
138
|
+
OPTIONS: Hash[Symbol, Module]
|
139
|
+
|
140
|
+
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def self.mixin_module: -> singleton(BCDD::Context::Mixin)
|
145
|
+
|
146
|
+
def self.result_factory: -> singleton(BCDD::Context)
|
147
|
+
end
|
148
|
+
|
149
|
+
class BCDD::Context::Expectations < BCDD::Result::Expectations
|
150
|
+
def self.mixin_module: -> singleton(BCDD::Context::Expectations::Mixin)
|
151
|
+
|
152
|
+
def self.result_factory_without_expectations: -> singleton(BCDD::Result)
|
153
|
+
|
154
|
+
def Success: (Symbol, **untyped) -> BCDD::Context::Success
|
155
|
+
def Failure: (Symbol, **untyped) -> BCDD::Context::Failure
|
156
|
+
end
|
157
|
+
|
158
|
+
module BCDD::Context::Expectations::Mixin
|
159
|
+
Methods: singleton(BCDD::Result::Expectations::Mixin::Methods)
|
160
|
+
Factory: singleton(BCDD::Result::Expectations::Mixin::Factory)
|
161
|
+
|
162
|
+
module Addons
|
163
|
+
module Continue
|
164
|
+
private def Continue: (**untyped) -> BCDD::Context::Success
|
165
|
+
end
|
166
|
+
|
167
|
+
module Given
|
168
|
+
private def Given: (*untyped) -> BCDD::Context::Success
|
169
|
+
end
|
170
|
+
|
171
|
+
OPTIONS: Hash[Symbol, Module]
|
172
|
+
|
173
|
+
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
174
|
+
end
|
175
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BCDD
|
2
|
+
module Failure
|
3
|
+
def success?: (?Symbol type) -> bool
|
4
|
+
def failure?: (?Symbol type) -> bool
|
5
|
+
def value_or: { (untyped) -> untyped } -> untyped
|
6
|
+
def value: -> untyped
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def kind: -> Symbol
|
11
|
+
def type_checker: -> BCDD::Result::Contract::TypeChecker
|
12
|
+
end
|
13
|
+
end
|
data/sig/bcdd/result/config.rbs
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
class BCDD::Result::Config
|
2
|
-
include Singleton
|
3
|
-
|
4
2
|
ADDON: Hash[Symbol, Hash[Symbol, untyped]]
|
5
3
|
FEATURE: Hash[Symbol, Hash[Symbol, untyped]]
|
6
4
|
PATTERN_MATCHING: Hash[Symbol, Hash[Symbol, untyped]]
|
@@ -15,7 +13,7 @@ class BCDD::Result::Config
|
|
15
13
|
def initialize: -> void
|
16
14
|
|
17
15
|
def and_then!: () -> BCDD::Result::CallableAndThen::Config
|
18
|
-
def
|
16
|
+
def event_logs: () -> BCDD::Result::EventLogs::Config
|
19
17
|
|
20
18
|
def freeze: -> BCDD::Result::Config
|
21
19
|
def options: -> Hash[Symbol, BCDD::Result::Config::Switcher]
|
data/sig/bcdd/result/context.rbs
CHANGED
@@ -1,175 +1,3 @@
|
|
1
|
-
class BCDD::Result
|
2
|
-
|
3
|
-
|
4
|
-
SourceMethodArity: ^(Method) -> Integer
|
5
|
-
|
6
|
-
attr_reader acc: Hash[Symbol, untyped]
|
7
|
-
|
8
|
-
def initialize: (
|
9
|
-
type: Symbol,
|
10
|
-
value: untyped,
|
11
|
-
?source: untyped,
|
12
|
-
?expectations: BCDD::Result::Contract::Evaluator,
|
13
|
-
?terminal: bool
|
14
|
-
) -> void
|
15
|
-
|
16
|
-
def and_then: (?Symbol, **untyped) ?{ (Hash[Symbol, untyped]) -> untyped } -> untyped
|
17
|
-
|
18
|
-
def and_then!: (untyped, **untyped) -> untyped
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
def call_and_then_source_method: (Symbol, Hash[Symbol, untyped]) -> BCDD::Result::Context
|
23
|
-
|
24
|
-
def call_and_then_callable!: (untyped, value: untyped, injected_value: untyped, method_name: (Symbol | nil)) -> BCDD::Result::Context
|
25
|
-
|
26
|
-
def ensure_result_object: (untyped, origin: Symbol) -> BCDD::Result::Context
|
27
|
-
|
28
|
-
def raise_unexpected_outcome_error: (BCDD::Result::Context | untyped, Symbol) -> void
|
29
|
-
end
|
30
|
-
|
31
|
-
class BCDD::Result::Context
|
32
|
-
class Error < BCDD::Result::Error
|
33
|
-
class InvalidExposure < BCDD::Result::Context::Error
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
class BCDD::Result::Context
|
39
|
-
class Success < BCDD::Result::Context
|
40
|
-
include BCDD::Result::Success::Methods
|
41
|
-
|
42
|
-
FetchValues: Proc
|
43
|
-
|
44
|
-
def and_expose: (Symbol, Array[Symbol], terminal: bool) -> BCDD::Result::Context::Success
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.Success: (Symbol, **untyped) -> BCDD::Result::Context::Success
|
48
|
-
end
|
49
|
-
|
50
|
-
module BCDD::Result::Context::CallableAndThen
|
51
|
-
class Caller < BCDD::Result::CallableAndThen::Caller
|
52
|
-
module KeyArgs
|
53
|
-
def self.parameters?: (untyped) -> bool
|
54
|
-
|
55
|
-
def self.invalid_arity: (untyped, Symbol) -> BCDD::Result::CallableAndThen::Error::InvalidArity
|
56
|
-
end
|
57
|
-
|
58
|
-
def self.call: (
|
59
|
-
untyped source,
|
60
|
-
value: untyped,
|
61
|
-
injected_value: untyped,
|
62
|
-
method_name: (Symbol | nil),
|
63
|
-
) -> BCDD::Result::Context
|
64
|
-
|
65
|
-
private
|
66
|
-
|
67
|
-
def self.call_proc!: (
|
68
|
-
untyped source,
|
69
|
-
Hash[Symbol, untyped] value,
|
70
|
-
nil injected_value
|
71
|
-
) -> BCDD::Result::Context
|
72
|
-
|
73
|
-
def self.call_method!: (
|
74
|
-
untyped source,
|
75
|
-
Method method,
|
76
|
-
Hash[Symbol, untyped] value,
|
77
|
-
nil injected_value
|
78
|
-
) -> BCDD::Result::Context
|
79
|
-
|
80
|
-
def self.callable_method: (
|
81
|
-
untyped source,
|
82
|
-
(Symbol | nil) method_name
|
83
|
-
) -> ::Method
|
84
|
-
|
85
|
-
def self.ensure_result_object: (
|
86
|
-
untyped source,
|
87
|
-
untyped value,
|
88
|
-
BCDD::Result::Context result
|
89
|
-
) -> BCDD::Result::Context
|
90
|
-
|
91
|
-
def self.expected_result_object: () -> singleton(BCDD::Result::Context)
|
92
|
-
|
93
|
-
def self.expected_outcome: () -> String
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
class BCDD::Result::Context
|
98
|
-
class Failure < BCDD::Result::Context
|
99
|
-
include BCDD::Result::Failure::Methods
|
100
|
-
|
101
|
-
def and_expose: (Symbol, Array[Symbol], **untyped) -> BCDD::Result::Context::Failure
|
102
|
-
end
|
103
|
-
|
104
|
-
def self.Failure: (Symbol, **untyped) -> BCDD::Result::Context::Failure
|
105
|
-
end
|
106
|
-
|
107
|
-
class BCDD::Result::Context
|
108
|
-
module Mixin
|
109
|
-
Factory: singleton(BCDD::Result::Mixin::Factory)
|
110
|
-
|
111
|
-
module Methods
|
112
|
-
def Success: (Symbol, **untyped) -> BCDD::Result::Context::Success
|
113
|
-
|
114
|
-
def Failure: (Symbol, **untyped) -> BCDD::Result::Context::Failure
|
115
|
-
|
116
|
-
private
|
117
|
-
|
118
|
-
def _ResultAs: (singleton(BCDD::Result::Context), Symbol, untyped, ?terminal: bool) -> untyped
|
119
|
-
end
|
120
|
-
|
121
|
-
module Addons
|
122
|
-
module Continue
|
123
|
-
include BCDD::Result::Context::Mixin::Methods
|
124
|
-
|
125
|
-
private
|
126
|
-
|
127
|
-
def Continue: (**untyped) -> BCDD::Result::Context::Success
|
128
|
-
end
|
129
|
-
|
130
|
-
module Given
|
131
|
-
include BCDD::Result::Context::Mixin::Methods
|
132
|
-
|
133
|
-
private
|
134
|
-
|
135
|
-
def Given: (*untyped) -> BCDD::Result::Context::Success
|
136
|
-
end
|
137
|
-
|
138
|
-
OPTIONS: Hash[Symbol, Module]
|
139
|
-
|
140
|
-
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
def self.mixin_module: -> singleton(BCDD::Result::Context::Mixin)
|
145
|
-
|
146
|
-
def self.result_factory: -> singleton(BCDD::Result::Context)
|
147
|
-
end
|
148
|
-
|
149
|
-
class BCDD::Result::Context::Expectations < BCDD::Result::Expectations
|
150
|
-
def self.mixin_module: -> singleton(BCDD::Result::Context::Expectations::Mixin)
|
151
|
-
|
152
|
-
def self.result_factory_without_expectations: -> singleton(BCDD::Result)
|
153
|
-
|
154
|
-
def Success: (Symbol, **untyped) -> BCDD::Result::Context::Success
|
155
|
-
def Failure: (Symbol, **untyped) -> BCDD::Result::Context::Failure
|
156
|
-
end
|
157
|
-
|
158
|
-
module BCDD::Result::Context::Expectations::Mixin
|
159
|
-
Methods: singleton(BCDD::Result::Expectations::Mixin::Methods)
|
160
|
-
Factory: singleton(BCDD::Result::Expectations::Mixin::Factory)
|
161
|
-
|
162
|
-
module Addons
|
163
|
-
module Continue
|
164
|
-
private def Continue: (**untyped) -> BCDD::Result::Context::Success
|
165
|
-
end
|
166
|
-
|
167
|
-
module Given
|
168
|
-
private def Given: (*untyped) -> BCDD::Result::Context::Success
|
169
|
-
end
|
170
|
-
|
171
|
-
OPTIONS: Hash[Symbol, Module]
|
172
|
-
|
173
|
-
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
174
|
-
end
|
1
|
+
class BCDD::Result
|
2
|
+
Context: BCDD::Context
|
175
3
|
end
|
@@ -26,6 +26,7 @@ module BCDD::Result::Contract
|
|
26
26
|
expectations: BCDD::Result::Contract::Evaluator
|
27
27
|
) -> void
|
28
28
|
|
29
|
+
def allow!: (Symbol) -> Symbol
|
29
30
|
def allow?: (Array[Symbol]) -> bool
|
30
31
|
def allow_success?: (Array[Symbol]) -> bool
|
31
32
|
def allow_failure?: (Array[Symbol]) -> bool
|
@@ -1,14 +1,14 @@
|
|
1
1
|
class BCDD::Result
|
2
|
-
module
|
2
|
+
module EventLogs
|
3
3
|
module Listener
|
4
4
|
module ClassMethods
|
5
5
|
def around_and_then?: () -> bool
|
6
|
-
def
|
6
|
+
def around_event_logs?: () -> bool
|
7
7
|
end
|
8
8
|
|
9
9
|
extend ClassMethods
|
10
10
|
|
11
|
-
def
|
11
|
+
def around_event_logs: (scope: Hash[Symbol, untyped]) { () -> untyped } -> untyped
|
12
12
|
|
13
13
|
def on_start: (scope: Hash[Symbol, untyped]) -> untyped
|
14
14
|
|
@@ -16,9 +16,9 @@ class BCDD::Result
|
|
16
16
|
|
17
17
|
def on_record: (record: Hash[Symbol, untyped] ) -> untyped
|
18
18
|
|
19
|
-
def on_finish: (
|
19
|
+
def on_finish: (event_logs: Hash[Symbol, untyped] ) -> untyped
|
20
20
|
|
21
|
-
def before_interruption: (exception: ::Exception,
|
21
|
+
def before_interruption: (exception: ::Exception, event_logs: Hash[Symbol, untyped]) -> untyped
|
22
22
|
end
|
23
23
|
|
24
24
|
class Listeners
|
@@ -40,11 +40,11 @@ class BCDD::Result
|
|
40
40
|
|
41
41
|
private attr_reader listeners: Array[Listener]
|
42
42
|
private attr_reader around_and_then_listener: untyped
|
43
|
-
private attr_reader
|
43
|
+
private attr_reader around_event_logs_listener: untyped
|
44
44
|
|
45
45
|
def initialize: (Array[Listener], untyped, untyped) -> void
|
46
46
|
|
47
|
-
def
|
47
|
+
def around_event_logs: (scope: Hash[Symbol, untyped]) { () -> untyped } -> untyped
|
48
48
|
|
49
49
|
def on_start: (scope: Hash[Symbol, untyped]) -> untyped
|
50
50
|
|
@@ -52,9 +52,9 @@ class BCDD::Result
|
|
52
52
|
|
53
53
|
def on_record: (record: Hash[Symbol, untyped] ) -> untyped
|
54
54
|
|
55
|
-
def on_finish: (
|
55
|
+
def on_finish: (event_logs: Hash[Symbol, untyped] ) -> untyped
|
56
56
|
|
57
|
-
def before_interruption: (exception: ::Exception,
|
57
|
+
def before_interruption: (exception: ::Exception, event_logs: Hash[Symbol, untyped]) -> untyped
|
58
58
|
end
|
59
59
|
|
60
60
|
module Listener::Null
|
@@ -64,8 +64,6 @@ class BCDD::Result
|
|
64
64
|
end
|
65
65
|
|
66
66
|
class Config
|
67
|
-
include ::Singleton
|
68
|
-
|
69
67
|
attr_reader listener: untyped
|
70
68
|
attr_reader trace_id: ::Proc
|
71
69
|
|
@@ -115,24 +113,26 @@ class BCDD::Result
|
|
115
113
|
def move_down!: (?Integer level) -> Tree
|
116
114
|
def move_to_root!: () -> Tree
|
117
115
|
|
118
|
-
|
119
|
-
|
120
|
-
def nested_ids: () -> Array[untyped]
|
121
|
-
|
116
|
+
Ids: ^(Node) -> Array[untyped]
|
122
117
|
IdsMatrix: ::Proc
|
118
|
+
IdsLevelParent: ::Proc
|
123
119
|
|
120
|
+
def ids: () -> Array[untyped]
|
121
|
+
def ids_list: () -> Array[Integer]
|
124
122
|
def ids_matrix: () -> untyped
|
123
|
+
def ids_level_parent: () -> untyped
|
125
124
|
end
|
126
125
|
|
127
126
|
module Tracking
|
128
127
|
EMPTY_ARRAY: Array[untyped]
|
129
128
|
EMPTY_HASH: Hash[untyped, untyped]
|
130
|
-
EMPTY_TREE:
|
129
|
+
EMPTY_TREE: EventLogs::Tree
|
130
|
+
EMPTY_IDS: Hash[untyped, untyped]
|
131
131
|
VERSION: Integer
|
132
132
|
EMPTY: Hash[Symbol, untyped]
|
133
133
|
|
134
134
|
class Enabled
|
135
|
-
private attr_accessor tree:
|
135
|
+
private attr_accessor tree: EventLogs::Tree
|
136
136
|
private attr_accessor records: Array[Hash[Symbol, untyped]]
|
137
137
|
private attr_accessor listener: untyped
|
138
138
|
private attr_accessor root_started_at: Integer
|
@@ -146,7 +146,7 @@ class BCDD::Result
|
|
146
146
|
|
147
147
|
private
|
148
148
|
|
149
|
-
def start: (String, String) -> [
|
149
|
+
def start: (String, String) -> [EventLogs::Tree::Node, Hash[Symbol, untyped]]
|
150
150
|
def finish: (untyped) -> untyped
|
151
151
|
|
152
152
|
TreeNodeValueNormalizer: ^(Integer, Array[untyped]) -> untyped
|
@@ -158,7 +158,7 @@ class BCDD::Result
|
|
158
158
|
|
159
159
|
def now_in_milliseconds: () -> Integer
|
160
160
|
|
161
|
-
def
|
161
|
+
def map_event_logs: () -> Hash[Symbol, untyped]
|
162
162
|
|
163
163
|
def build_listener: () -> Listener
|
164
164
|
end
|
data/sig/bcdd/result.rbs
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
class BCDD::Result
|
2
2
|
private attr_accessor unknown: bool
|
3
|
-
private attr_writer
|
3
|
+
private attr_writer event_logs: Hash[Symbol, untyped]
|
4
4
|
private attr_reader type_checker: BCDD::Result::Contract::TypeChecker
|
5
5
|
|
6
6
|
attr_reader data: BCDD::Result::Data
|
7
7
|
attr_reader source: untyped
|
8
8
|
attr_reader terminal: bool
|
9
|
-
attr_reader
|
9
|
+
attr_reader event_logs: Hash[Symbol, untyped]
|
10
10
|
|
11
11
|
def self.config: -> BCDD::Result::Config
|
12
12
|
def self.configuration: (freeze: bool) { (BCDD::Result::Config) -> void } -> (bool | BCDD::Result::Config)
|
13
|
-
def self.
|
13
|
+
def self.event_logs: (name: untyped, desc: untyped) { () -> untyped } -> BCDD::Result
|
14
14
|
|
15
15
|
def initialize: (
|
16
16
|
type: Symbol,
|
@@ -23,6 +23,7 @@ class BCDD::Result
|
|
23
23
|
def type: -> Symbol
|
24
24
|
def value: -> untyped
|
25
25
|
|
26
|
+
def type?: (Symbol | String) -> bool
|
26
27
|
def terminal?: -> bool
|
27
28
|
def success?: (?Symbol type) -> bool
|
28
29
|
def failure?: (?Symbol type) -> bool
|
@@ -47,6 +48,11 @@ class BCDD::Result
|
|
47
48
|
def deconstruct: -> [Symbol, [Symbol, untyped]]
|
48
49
|
def deconstruct_keys: (Array[Symbol]) -> Hash[Symbol, Hash[Symbol, untyped]]
|
49
50
|
|
51
|
+
TYPE_AND_VALUE: Array[Symbol]
|
52
|
+
|
53
|
+
def method_missing: (Symbol, *untyped) { (untyped) -> untyped } -> untyped
|
54
|
+
|
55
|
+
alias is? type?
|
50
56
|
alias eql? ==
|
51
57
|
alias on_type on
|
52
58
|
|
@@ -64,40 +70,16 @@ end
|
|
64
70
|
|
65
71
|
class BCDD::Result
|
66
72
|
class Success < BCDD::Result
|
67
|
-
|
68
|
-
def success?: (?Symbol type) -> bool
|
69
|
-
def failure?: (?Symbol type) -> bool
|
70
|
-
def value_or: { () -> untyped } -> untyped
|
71
|
-
def value: -> untyped
|
72
|
-
|
73
|
-
private
|
74
|
-
|
75
|
-
def kind: -> Symbol
|
76
|
-
def type_checker: -> BCDD::Result::Contract::TypeChecker
|
77
|
-
end
|
78
|
-
|
79
|
-
include Methods
|
73
|
+
include BCDD::Success
|
80
74
|
end
|
81
75
|
|
82
|
-
def self.
|
76
|
+
def self.Success: (Symbol type, ?untyped value) -> BCDD::Result::Success
|
83
77
|
end
|
84
78
|
|
85
79
|
class BCDD::Result
|
86
80
|
class Failure < BCDD::Result
|
87
|
-
|
88
|
-
def success?: (?Symbol type) -> bool
|
89
|
-
def failure?: (?Symbol type) -> bool
|
90
|
-
def value_or: { (untyped) -> untyped } -> untyped
|
91
|
-
def value: -> untyped
|
92
|
-
|
93
|
-
private
|
94
|
-
|
95
|
-
def kind: -> Symbol
|
96
|
-
def type_checker: -> BCDD::Result::Contract::TypeChecker
|
97
|
-
end
|
98
|
-
|
99
|
-
include Methods
|
81
|
+
include BCDD::Failure
|
100
82
|
end
|
101
83
|
|
102
|
-
def self.
|
84
|
+
def self.Failure: (Symbol type, ?untyped value) -> BCDD::Result::Failure
|
103
85
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module BCDD
|
2
|
+
module Success
|
3
|
+
def success?: (?Symbol type) -> bool
|
4
|
+
def failure?: (?Symbol type) -> bool
|
5
|
+
def value_or: { () -> untyped } -> untyped
|
6
|
+
def value: -> untyped
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def kind: -> Symbol
|
11
|
+
def type_checker: -> BCDD::Result::Contract::TypeChecker
|
12
|
+
end
|
13
|
+
end
|