solid-result 2.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 +7 -0
- data/.rubocop.yml +98 -0
- data/.rubocop_todo.yml +12 -0
- data/CHANGELOG.md +600 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/LICENSE.txt +21 -0
- data/README.md +2691 -0
- data/Rakefile +28 -0
- data/Steepfile +31 -0
- data/examples/multiple_listeners/Rakefile +55 -0
- data/examples/multiple_listeners/app/models/account/member.rb +10 -0
- data/examples/multiple_listeners/app/models/account/owner_creation.rb +62 -0
- data/examples/multiple_listeners/app/models/account.rb +11 -0
- data/examples/multiple_listeners/app/models/user/creation.rb +67 -0
- data/examples/multiple_listeners/app/models/user/token/creation.rb +51 -0
- data/examples/multiple_listeners/app/models/user/token.rb +7 -0
- data/examples/multiple_listeners/app/models/user.rb +15 -0
- data/examples/multiple_listeners/config/boot.rb +16 -0
- data/examples/multiple_listeners/config/initializers/solid_result.rb +9 -0
- data/examples/multiple_listeners/config.rb +27 -0
- data/examples/multiple_listeners/db/setup.rb +60 -0
- data/examples/multiple_listeners/lib/event_logs_listener/stdout.rb +60 -0
- data/examples/multiple_listeners/lib/runtime_breaker.rb +11 -0
- data/examples/multiple_listeners/lib/solid/result/event_logs_record.rb +27 -0
- data/examples/multiple_listeners/lib/solid/result/rollback_on_failure.rb +15 -0
- 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/solid_result.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 +92 -0
- data/examples/single_listener/app/models/account/member.rb +10 -0
- data/examples/single_listener/app/models/account/owner_creation.rb +62 -0
- data/examples/single_listener/app/models/account.rb +11 -0
- data/examples/single_listener/app/models/user/creation.rb +67 -0
- data/examples/single_listener/app/models/user/token/creation.rb +51 -0
- data/examples/single_listener/app/models/user/token.rb +7 -0
- data/examples/single_listener/app/models/user.rb +15 -0
- data/examples/single_listener/config/boot.rb +16 -0
- data/examples/single_listener/config/initializers/solid_result.rb +9 -0
- data/examples/single_listener/config.rb +23 -0
- data/examples/single_listener/db/setup.rb +49 -0
- data/examples/single_listener/lib/runtime_breaker.rb +11 -0
- data/examples/single_listener/lib/single_event_logs_listener.rb +117 -0
- data/examples/single_listener/lib/solid/result/rollback_on_failure.rb +15 -0
- data/lib/solid/failure.rb +23 -0
- data/lib/solid/output/callable_and_then.rb +40 -0
- data/lib/solid/output/expectations/mixin.rb +31 -0
- data/lib/solid/output/expectations.rb +25 -0
- data/lib/solid/output/failure.rb +9 -0
- data/lib/solid/output/mixin.rb +57 -0
- data/lib/solid/output/success.rb +37 -0
- data/lib/solid/output.rb +115 -0
- data/lib/solid/result/_self.rb +198 -0
- data/lib/solid/result/callable_and_then/caller.rb +49 -0
- data/lib/solid/result/callable_and_then/config.rb +15 -0
- data/lib/solid/result/callable_and_then/error.rb +11 -0
- data/lib/solid/result/callable_and_then.rb +9 -0
- data/lib/solid/result/config/options.rb +27 -0
- data/lib/solid/result/config/switcher.rb +82 -0
- data/lib/solid/result/config/switchers/addons.rb +25 -0
- data/lib/solid/result/config/switchers/constant_aliases.rb +33 -0
- data/lib/solid/result/config/switchers/features.rb +32 -0
- data/lib/solid/result/config/switchers/pattern_matching.rb +20 -0
- data/lib/solid/result/config.rb +64 -0
- data/lib/solid/result/contract/disabled.rb +25 -0
- data/lib/solid/result/contract/error.rb +17 -0
- data/lib/solid/result/contract/evaluator.rb +45 -0
- data/lib/solid/result/contract/for_types.rb +29 -0
- data/lib/solid/result/contract/for_types_and_values.rb +46 -0
- data/lib/solid/result/contract/interface.rb +21 -0
- data/lib/solid/result/contract/type_checker.rb +37 -0
- data/lib/solid/result/contract.rb +33 -0
- data/lib/solid/result/data.rb +33 -0
- data/lib/solid/result/error.rb +59 -0
- data/lib/solid/result/event_logs/config.rb +28 -0
- data/lib/solid/result/event_logs/listener.rb +51 -0
- data/lib/solid/result/event_logs/listeners.rb +87 -0
- data/lib/solid/result/event_logs/tracking/disabled.rb +15 -0
- data/lib/solid/result/event_logs/tracking/enabled.rb +161 -0
- data/lib/solid/result/event_logs/tracking.rb +26 -0
- data/lib/solid/result/event_logs/tree.rb +141 -0
- data/lib/solid/result/event_logs.rb +27 -0
- data/lib/solid/result/expectations/mixin.rb +58 -0
- data/lib/solid/result/expectations.rb +75 -0
- data/lib/solid/result/failure.rb +11 -0
- data/lib/solid/result/handler/allowed_types.rb +45 -0
- data/lib/solid/result/handler.rb +57 -0
- data/lib/solid/result/ignored_types.rb +14 -0
- data/lib/solid/result/mixin.rb +72 -0
- data/lib/solid/result/success.rb +11 -0
- data/lib/solid/result/version.rb +7 -0
- data/lib/solid/result.rb +27 -0
- data/lib/solid/success.rb +23 -0
- data/lib/solid-result.rb +3 -0
- data/sig/solid/failure.rbs +13 -0
- data/sig/solid/output.rbs +175 -0
- data/sig/solid/result/callable_and_then.rbs +60 -0
- data/sig/solid/result/config.rbs +102 -0
- data/sig/solid/result/contract.rbs +120 -0
- data/sig/solid/result/data.rbs +16 -0
- data/sig/solid/result/error.rbs +34 -0
- data/sig/solid/result/event_logs.rbs +189 -0
- data/sig/solid/result/expectations.rbs +71 -0
- data/sig/solid/result/handler.rbs +47 -0
- data/sig/solid/result/ignored_types.rbs +9 -0
- data/sig/solid/result/mixin.rbs +45 -0
- data/sig/solid/result/version.rbs +5 -0
- data/sig/solid/result.rbs +85 -0
- data/sig/solid/success.rbs +13 -0
- metadata +167 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
class Solid::Result::Expectations
|
|
2
|
+
def self.mixin: (
|
|
3
|
+
?config: Hash[Symbol, Hash[Symbol, bool]],
|
|
4
|
+
?success: Hash[Symbol, untyped] | Array[Symbol],
|
|
5
|
+
?failure: Hash[Symbol, untyped] | Array[Symbol]
|
|
6
|
+
) -> Module
|
|
7
|
+
|
|
8
|
+
def self.mixin!: (
|
|
9
|
+
?config: Hash[Symbol, Hash[Symbol, bool]],
|
|
10
|
+
?success: Hash[Symbol, untyped] | Array[Symbol],
|
|
11
|
+
?failure: Hash[Symbol, untyped] | Array[Symbol]
|
|
12
|
+
) -> Module
|
|
13
|
+
|
|
14
|
+
def self.mixin_module: -> singleton(Solid::Result::Expectations::Mixin)
|
|
15
|
+
|
|
16
|
+
def self.result_factory_without_expectations: -> singleton(Solid::Result)
|
|
17
|
+
|
|
18
|
+
def self.new: (
|
|
19
|
+
?source: untyped,
|
|
20
|
+
?contract: Solid::Result::Contract::Evaluator,
|
|
21
|
+
?terminal: bool,
|
|
22
|
+
**untyped
|
|
23
|
+
) -> (Solid::Result::Expectations | untyped)
|
|
24
|
+
|
|
25
|
+
def initialize: (
|
|
26
|
+
?source: untyped,
|
|
27
|
+
?contract: Solid::Result::Contract::Evaluator,
|
|
28
|
+
?terminal: bool,
|
|
29
|
+
**untyped
|
|
30
|
+
) -> void
|
|
31
|
+
|
|
32
|
+
def Success: (Symbol, ?untyped) -> Solid::Result::Success
|
|
33
|
+
def Failure: (Symbol, ?untyped) -> Solid::Result::Failure
|
|
34
|
+
|
|
35
|
+
def with: (source: untyped) -> Solid::Result::Expectations
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
def _ResultAs: (singleton(Solid::Result), Symbol, untyped) -> untyped
|
|
40
|
+
|
|
41
|
+
attr_reader source: untyped
|
|
42
|
+
attr_reader contract: Solid::Result::Contract::Evaluator
|
|
43
|
+
attr_reader terminal: bool
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
module Solid::Result::Expectations::Mixin
|
|
47
|
+
module Factory
|
|
48
|
+
def self.module!: -> Module
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
module Methods
|
|
52
|
+
BASE: String
|
|
53
|
+
FACTORY: String
|
|
54
|
+
|
|
55
|
+
def self.to_eval: (Hash[Symbol, untyped]) -> String
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
module Addons
|
|
59
|
+
module Continue
|
|
60
|
+
private def Continue: (untyped) -> Solid::Result::Success
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
module Given
|
|
64
|
+
private def Given: (untyped) -> Solid::Result::Success
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
OPTIONS: Hash[Symbol, Module]
|
|
68
|
+
|
|
69
|
+
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
|
70
|
+
end
|
|
71
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
class Solid::Result
|
|
2
|
+
class Handler
|
|
3
|
+
UNDEFINED: Object
|
|
4
|
+
|
|
5
|
+
def initialize: (
|
|
6
|
+
Solid::Result,
|
|
7
|
+
type_checker: Solid::Result::Contract::TypeChecker
|
|
8
|
+
) -> void
|
|
9
|
+
|
|
10
|
+
def []: (*Symbol) { (untyped, Symbol) -> void } -> untyped
|
|
11
|
+
def failure: (*Symbol) { (untyped, Symbol) -> void } -> untyped
|
|
12
|
+
def success: (*Symbol) { (untyped, Symbol) -> void } -> untyped
|
|
13
|
+
def unknown: () { (untyped, Symbol) -> void } -> untyped
|
|
14
|
+
|
|
15
|
+
alias type []
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
attr_reader result: Solid::Result
|
|
20
|
+
attr_reader allowed_types: Solid::Result::Handler::AllowedTypes
|
|
21
|
+
|
|
22
|
+
def outcome?: -> bool
|
|
23
|
+
def outcome=: (Proc) -> void
|
|
24
|
+
def outcome: -> untyped
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class Solid::Result::Handler
|
|
29
|
+
class AllowedTypes
|
|
30
|
+
attr_reader unchecked: Set[Symbol]
|
|
31
|
+
attr_reader type_checker: Solid::Result::Contract::TypeChecker
|
|
32
|
+
|
|
33
|
+
def initialize: (
|
|
34
|
+
Solid::Result::Contract::TypeChecker
|
|
35
|
+
) -> void
|
|
36
|
+
|
|
37
|
+
def allow?: (Array[Symbol]) -> bool
|
|
38
|
+
def allow_success?: (Array[Symbol]) -> bool
|
|
39
|
+
def allow_failure?: (Array[Symbol]) -> bool
|
|
40
|
+
|
|
41
|
+
def all_checked?: -> bool
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
def check!: (Array[Symbol], bool) -> bool
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
class Solid::Result
|
|
2
|
+
module Mixin
|
|
3
|
+
module Factory
|
|
4
|
+
def self.module!: -> Module
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
module Methods
|
|
8
|
+
def Success: (Symbol type, ?untyped value) -> Solid::Result::Success
|
|
9
|
+
|
|
10
|
+
def Failure: (Symbol type, ?untyped value) -> Solid::Result::Failure
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def _ResultAs: (singleton(Solid::Result), Symbol, untyped, ?terminal: bool) -> untyped
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module Addons
|
|
18
|
+
module Continue
|
|
19
|
+
include Solid::Result::Mixin::Methods
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def Continue: (untyped) -> Solid::Result::Success
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
module Given
|
|
27
|
+
include Solid::Result::Mixin::Methods
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
def Given: (untyped) -> Solid::Result::Success
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
OPTIONS: Hash[Symbol, Module]
|
|
35
|
+
|
|
36
|
+
def self.options: (Hash[Symbol, Hash[Symbol, bool]]) -> Hash[Symbol, Module]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.mixin: (?config: Hash[Symbol, Hash[Symbol, bool]]) -> Module
|
|
41
|
+
|
|
42
|
+
def self.mixin_module: -> singleton(Solid::Result::Mixin)
|
|
43
|
+
|
|
44
|
+
def self.result_factory: -> singleton(Solid::Result)
|
|
45
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
class Solid::Result
|
|
2
|
+
private attr_accessor unknown: bool
|
|
3
|
+
private attr_writer event_logs: Hash[Symbol, untyped]
|
|
4
|
+
private attr_reader type_checker: Solid::Result::Contract::TypeChecker
|
|
5
|
+
|
|
6
|
+
attr_reader data: Solid::Result::Data
|
|
7
|
+
attr_reader source: untyped
|
|
8
|
+
attr_reader terminal: bool
|
|
9
|
+
attr_reader event_logs: Hash[Symbol, untyped]
|
|
10
|
+
|
|
11
|
+
def self.config: -> Solid::Result::Config
|
|
12
|
+
def self.configuration: (freeze: bool) { (Solid::Result::Config) -> void } -> (bool | Solid::Result::Config)
|
|
13
|
+
def self.event_logs: (name: untyped, desc: untyped) { () -> untyped } -> Solid::Result
|
|
14
|
+
|
|
15
|
+
def initialize: (
|
|
16
|
+
type: Symbol,
|
|
17
|
+
value: untyped,
|
|
18
|
+
?source: untyped,
|
|
19
|
+
?expectations: Solid::Result::Contract::Evaluator,
|
|
20
|
+
?terminal: bool
|
|
21
|
+
) -> void
|
|
22
|
+
|
|
23
|
+
def type: -> Symbol
|
|
24
|
+
def value: -> untyped
|
|
25
|
+
|
|
26
|
+
def type?: (Symbol | String) -> bool
|
|
27
|
+
def terminal?: -> bool
|
|
28
|
+
def success?: (?Symbol type) -> bool
|
|
29
|
+
def failure?: (?Symbol type) -> bool
|
|
30
|
+
|
|
31
|
+
def value_or: { () -> untyped } -> untyped
|
|
32
|
+
|
|
33
|
+
def on: (*Symbol) { (untyped, Symbol) -> void } -> Solid::Result
|
|
34
|
+
def on_success: (*Symbol) { (untyped, Symbol) -> void } -> Solid::Result
|
|
35
|
+
def on_failure: (*Symbol) { (untyped, Symbol) -> void } -> Solid::Result
|
|
36
|
+
def on_unknown: () { (untyped, Symbol) -> void } -> Solid::Result
|
|
37
|
+
|
|
38
|
+
def and_then: (?Symbol method_name, ?untyped injected_value) ?{ (untyped) -> untyped } -> untyped
|
|
39
|
+
|
|
40
|
+
def and_then!: (untyped, ?untyped injected_value, _call: (Symbol | nil)) -> untyped
|
|
41
|
+
|
|
42
|
+
def handle: () { (Solid::Result::Handler) -> void } -> untyped
|
|
43
|
+
|
|
44
|
+
def ==: (untyped) -> bool
|
|
45
|
+
def hash: -> Integer
|
|
46
|
+
def inspect: -> String
|
|
47
|
+
|
|
48
|
+
def deconstruct: -> [Symbol, [Symbol, untyped]]
|
|
49
|
+
def deconstruct_keys: (Array[Symbol]) -> Hash[Symbol, Hash[Symbol, untyped]]
|
|
50
|
+
|
|
51
|
+
TYPE_AND_VALUE: Array[Symbol]
|
|
52
|
+
|
|
53
|
+
def method_missing: (Symbol, *untyped) { (untyped) -> untyped } -> untyped
|
|
54
|
+
|
|
55
|
+
alias is? type?
|
|
56
|
+
alias eql? ==
|
|
57
|
+
alias on_type on
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def kind: -> Symbol
|
|
62
|
+
def known: (Proc) -> untyped
|
|
63
|
+
def call_and_then_source_method: (Symbol, untyped) -> Solid::Result
|
|
64
|
+
def call_and_then_source_method!: (untyped, untyped) -> Solid::Result
|
|
65
|
+
def call_and_then_block: (untyped) -> Solid::Result
|
|
66
|
+
def call_and_then_block!: (untyped) -> Solid::Result
|
|
67
|
+
def call_and_then_callable!: (untyped, value: untyped, injected_value: untyped, method_name: (Symbol | nil)) -> Solid::Result
|
|
68
|
+
def ensure_result_object: (untyped, origin: Symbol) -> Solid::Result
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class Solid::Result
|
|
72
|
+
class Success < Solid::Result
|
|
73
|
+
include Solid::Success
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def self.Success: (Symbol type, ?untyped value) -> Solid::Result::Success
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
class Solid::Result
|
|
80
|
+
class Failure < Solid::Result
|
|
81
|
+
include Solid::Failure
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def self.Failure: (Symbol type, ?untyped value) -> Solid::Result::Failure
|
|
85
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module Solid
|
|
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: -> Solid::Result::Contract::TypeChecker
|
|
12
|
+
end
|
|
13
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: solid-result
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Rodrigo Serradura
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2024-04-14 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: Unleash a pragmatic and observable use of Result Pattern and Railway-Oriented
|
|
14
|
+
Programming in Ruby.
|
|
15
|
+
email:
|
|
16
|
+
- rodrigo.serradura@gmail.com
|
|
17
|
+
executables: []
|
|
18
|
+
extensions: []
|
|
19
|
+
extra_rdoc_files: []
|
|
20
|
+
files:
|
|
21
|
+
- ".rubocop.yml"
|
|
22
|
+
- ".rubocop_todo.yml"
|
|
23
|
+
- CHANGELOG.md
|
|
24
|
+
- CODE_OF_CONDUCT.md
|
|
25
|
+
- LICENSE.txt
|
|
26
|
+
- README.md
|
|
27
|
+
- Rakefile
|
|
28
|
+
- Steepfile
|
|
29
|
+
- examples/multiple_listeners/Rakefile
|
|
30
|
+
- examples/multiple_listeners/app/models/account.rb
|
|
31
|
+
- examples/multiple_listeners/app/models/account/member.rb
|
|
32
|
+
- examples/multiple_listeners/app/models/account/owner_creation.rb
|
|
33
|
+
- examples/multiple_listeners/app/models/user.rb
|
|
34
|
+
- examples/multiple_listeners/app/models/user/creation.rb
|
|
35
|
+
- examples/multiple_listeners/app/models/user/token.rb
|
|
36
|
+
- examples/multiple_listeners/app/models/user/token/creation.rb
|
|
37
|
+
- examples/multiple_listeners/config.rb
|
|
38
|
+
- examples/multiple_listeners/config/boot.rb
|
|
39
|
+
- examples/multiple_listeners/config/initializers/solid_result.rb
|
|
40
|
+
- examples/multiple_listeners/db/setup.rb
|
|
41
|
+
- examples/multiple_listeners/lib/event_logs_listener/stdout.rb
|
|
42
|
+
- examples/multiple_listeners/lib/runtime_breaker.rb
|
|
43
|
+
- examples/multiple_listeners/lib/solid/result/event_logs_record.rb
|
|
44
|
+
- examples/multiple_listeners/lib/solid/result/rollback_on_failure.rb
|
|
45
|
+
- examples/service_objects/Rakefile
|
|
46
|
+
- examples/service_objects/app/models/account.rb
|
|
47
|
+
- examples/service_objects/app/models/account/member.rb
|
|
48
|
+
- examples/service_objects/app/models/user.rb
|
|
49
|
+
- examples/service_objects/app/models/user/token.rb
|
|
50
|
+
- examples/service_objects/app/services/account/owner_creation.rb
|
|
51
|
+
- examples/service_objects/app/services/application_service.rb
|
|
52
|
+
- examples/service_objects/app/services/user/creation.rb
|
|
53
|
+
- examples/service_objects/app/services/user/token/creation.rb
|
|
54
|
+
- examples/service_objects/config.rb
|
|
55
|
+
- examples/service_objects/config/boot.rb
|
|
56
|
+
- examples/service_objects/config/initializers/solid_result.rb
|
|
57
|
+
- examples/service_objects/db/setup.rb
|
|
58
|
+
- examples/single_listener/Rakefile
|
|
59
|
+
- examples/single_listener/app/models/account.rb
|
|
60
|
+
- examples/single_listener/app/models/account/member.rb
|
|
61
|
+
- examples/single_listener/app/models/account/owner_creation.rb
|
|
62
|
+
- examples/single_listener/app/models/user.rb
|
|
63
|
+
- examples/single_listener/app/models/user/creation.rb
|
|
64
|
+
- examples/single_listener/app/models/user/token.rb
|
|
65
|
+
- examples/single_listener/app/models/user/token/creation.rb
|
|
66
|
+
- examples/single_listener/config.rb
|
|
67
|
+
- examples/single_listener/config/boot.rb
|
|
68
|
+
- examples/single_listener/config/initializers/solid_result.rb
|
|
69
|
+
- examples/single_listener/db/setup.rb
|
|
70
|
+
- examples/single_listener/lib/runtime_breaker.rb
|
|
71
|
+
- examples/single_listener/lib/single_event_logs_listener.rb
|
|
72
|
+
- examples/single_listener/lib/solid/result/rollback_on_failure.rb
|
|
73
|
+
- lib/solid-result.rb
|
|
74
|
+
- lib/solid/failure.rb
|
|
75
|
+
- lib/solid/output.rb
|
|
76
|
+
- lib/solid/output/callable_and_then.rb
|
|
77
|
+
- lib/solid/output/expectations.rb
|
|
78
|
+
- lib/solid/output/expectations/mixin.rb
|
|
79
|
+
- lib/solid/output/failure.rb
|
|
80
|
+
- lib/solid/output/mixin.rb
|
|
81
|
+
- lib/solid/output/success.rb
|
|
82
|
+
- lib/solid/result.rb
|
|
83
|
+
- lib/solid/result/_self.rb
|
|
84
|
+
- lib/solid/result/callable_and_then.rb
|
|
85
|
+
- lib/solid/result/callable_and_then/caller.rb
|
|
86
|
+
- lib/solid/result/callable_and_then/config.rb
|
|
87
|
+
- lib/solid/result/callable_and_then/error.rb
|
|
88
|
+
- lib/solid/result/config.rb
|
|
89
|
+
- lib/solid/result/config/options.rb
|
|
90
|
+
- lib/solid/result/config/switcher.rb
|
|
91
|
+
- lib/solid/result/config/switchers/addons.rb
|
|
92
|
+
- lib/solid/result/config/switchers/constant_aliases.rb
|
|
93
|
+
- lib/solid/result/config/switchers/features.rb
|
|
94
|
+
- lib/solid/result/config/switchers/pattern_matching.rb
|
|
95
|
+
- lib/solid/result/contract.rb
|
|
96
|
+
- lib/solid/result/contract/disabled.rb
|
|
97
|
+
- lib/solid/result/contract/error.rb
|
|
98
|
+
- lib/solid/result/contract/evaluator.rb
|
|
99
|
+
- lib/solid/result/contract/for_types.rb
|
|
100
|
+
- lib/solid/result/contract/for_types_and_values.rb
|
|
101
|
+
- lib/solid/result/contract/interface.rb
|
|
102
|
+
- lib/solid/result/contract/type_checker.rb
|
|
103
|
+
- lib/solid/result/data.rb
|
|
104
|
+
- lib/solid/result/error.rb
|
|
105
|
+
- lib/solid/result/event_logs.rb
|
|
106
|
+
- lib/solid/result/event_logs/config.rb
|
|
107
|
+
- lib/solid/result/event_logs/listener.rb
|
|
108
|
+
- lib/solid/result/event_logs/listeners.rb
|
|
109
|
+
- lib/solid/result/event_logs/tracking.rb
|
|
110
|
+
- lib/solid/result/event_logs/tracking/disabled.rb
|
|
111
|
+
- lib/solid/result/event_logs/tracking/enabled.rb
|
|
112
|
+
- lib/solid/result/event_logs/tree.rb
|
|
113
|
+
- lib/solid/result/expectations.rb
|
|
114
|
+
- lib/solid/result/expectations/mixin.rb
|
|
115
|
+
- lib/solid/result/failure.rb
|
|
116
|
+
- lib/solid/result/handler.rb
|
|
117
|
+
- lib/solid/result/handler/allowed_types.rb
|
|
118
|
+
- lib/solid/result/ignored_types.rb
|
|
119
|
+
- lib/solid/result/mixin.rb
|
|
120
|
+
- lib/solid/result/success.rb
|
|
121
|
+
- lib/solid/result/version.rb
|
|
122
|
+
- lib/solid/success.rb
|
|
123
|
+
- sig/solid/failure.rbs
|
|
124
|
+
- sig/solid/output.rbs
|
|
125
|
+
- sig/solid/result.rbs
|
|
126
|
+
- sig/solid/result/callable_and_then.rbs
|
|
127
|
+
- sig/solid/result/config.rbs
|
|
128
|
+
- sig/solid/result/contract.rbs
|
|
129
|
+
- sig/solid/result/data.rbs
|
|
130
|
+
- sig/solid/result/error.rbs
|
|
131
|
+
- sig/solid/result/event_logs.rbs
|
|
132
|
+
- sig/solid/result/expectations.rbs
|
|
133
|
+
- sig/solid/result/handler.rbs
|
|
134
|
+
- sig/solid/result/ignored_types.rbs
|
|
135
|
+
- sig/solid/result/mixin.rbs
|
|
136
|
+
- sig/solid/result/version.rbs
|
|
137
|
+
- sig/solid/success.rbs
|
|
138
|
+
homepage: https://github.com/solid-process/solid-result
|
|
139
|
+
licenses:
|
|
140
|
+
- MIT
|
|
141
|
+
metadata:
|
|
142
|
+
allowed_push_host: https://rubygems.org
|
|
143
|
+
homepage_uri: https://github.com/solid-process/solid-result
|
|
144
|
+
source_code_uri: https://github.com/solid-process/solid-result
|
|
145
|
+
changelog_uri: https://github.com/solid-process/solid-result/blob/main/CHANGELOG.md
|
|
146
|
+
rubygems_mfa_required: 'true'
|
|
147
|
+
post_install_message:
|
|
148
|
+
rdoc_options: []
|
|
149
|
+
require_paths:
|
|
150
|
+
- lib
|
|
151
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
|
+
requirements:
|
|
153
|
+
- - ">="
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: 2.7.0
|
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '0'
|
|
161
|
+
requirements: []
|
|
162
|
+
rubygems_version: 3.5.6
|
|
163
|
+
signing_key:
|
|
164
|
+
specification_version: 4
|
|
165
|
+
summary: Unleash a pragmatic and observable use of Result Pattern and Railway-Oriented
|
|
166
|
+
Programming in Ruby.
|
|
167
|
+
test_files: []
|