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.
Files changed (119) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +98 -0
  3. data/.rubocop_todo.yml +12 -0
  4. data/CHANGELOG.md +600 -0
  5. data/CODE_OF_CONDUCT.md +84 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +2691 -0
  8. data/Rakefile +28 -0
  9. data/Steepfile +31 -0
  10. data/examples/multiple_listeners/Rakefile +55 -0
  11. data/examples/multiple_listeners/app/models/account/member.rb +10 -0
  12. data/examples/multiple_listeners/app/models/account/owner_creation.rb +62 -0
  13. data/examples/multiple_listeners/app/models/account.rb +11 -0
  14. data/examples/multiple_listeners/app/models/user/creation.rb +67 -0
  15. data/examples/multiple_listeners/app/models/user/token/creation.rb +51 -0
  16. data/examples/multiple_listeners/app/models/user/token.rb +7 -0
  17. data/examples/multiple_listeners/app/models/user.rb +15 -0
  18. data/examples/multiple_listeners/config/boot.rb +16 -0
  19. data/examples/multiple_listeners/config/initializers/solid_result.rb +9 -0
  20. data/examples/multiple_listeners/config.rb +27 -0
  21. data/examples/multiple_listeners/db/setup.rb +60 -0
  22. data/examples/multiple_listeners/lib/event_logs_listener/stdout.rb +60 -0
  23. data/examples/multiple_listeners/lib/runtime_breaker.rb +11 -0
  24. data/examples/multiple_listeners/lib/solid/result/event_logs_record.rb +27 -0
  25. data/examples/multiple_listeners/lib/solid/result/rollback_on_failure.rb +15 -0
  26. data/examples/service_objects/Rakefile +36 -0
  27. data/examples/service_objects/app/models/account/member.rb +10 -0
  28. data/examples/service_objects/app/models/account.rb +11 -0
  29. data/examples/service_objects/app/models/user/token.rb +7 -0
  30. data/examples/service_objects/app/models/user.rb +15 -0
  31. data/examples/service_objects/app/services/account/owner_creation.rb +47 -0
  32. data/examples/service_objects/app/services/application_service.rb +79 -0
  33. data/examples/service_objects/app/services/user/creation.rb +56 -0
  34. data/examples/service_objects/app/services/user/token/creation.rb +37 -0
  35. data/examples/service_objects/config/boot.rb +17 -0
  36. data/examples/service_objects/config/initializers/solid_result.rb +9 -0
  37. data/examples/service_objects/config.rb +20 -0
  38. data/examples/service_objects/db/setup.rb +49 -0
  39. data/examples/single_listener/Rakefile +92 -0
  40. data/examples/single_listener/app/models/account/member.rb +10 -0
  41. data/examples/single_listener/app/models/account/owner_creation.rb +62 -0
  42. data/examples/single_listener/app/models/account.rb +11 -0
  43. data/examples/single_listener/app/models/user/creation.rb +67 -0
  44. data/examples/single_listener/app/models/user/token/creation.rb +51 -0
  45. data/examples/single_listener/app/models/user/token.rb +7 -0
  46. data/examples/single_listener/app/models/user.rb +15 -0
  47. data/examples/single_listener/config/boot.rb +16 -0
  48. data/examples/single_listener/config/initializers/solid_result.rb +9 -0
  49. data/examples/single_listener/config.rb +23 -0
  50. data/examples/single_listener/db/setup.rb +49 -0
  51. data/examples/single_listener/lib/runtime_breaker.rb +11 -0
  52. data/examples/single_listener/lib/single_event_logs_listener.rb +117 -0
  53. data/examples/single_listener/lib/solid/result/rollback_on_failure.rb +15 -0
  54. data/lib/solid/failure.rb +23 -0
  55. data/lib/solid/output/callable_and_then.rb +40 -0
  56. data/lib/solid/output/expectations/mixin.rb +31 -0
  57. data/lib/solid/output/expectations.rb +25 -0
  58. data/lib/solid/output/failure.rb +9 -0
  59. data/lib/solid/output/mixin.rb +57 -0
  60. data/lib/solid/output/success.rb +37 -0
  61. data/lib/solid/output.rb +115 -0
  62. data/lib/solid/result/_self.rb +198 -0
  63. data/lib/solid/result/callable_and_then/caller.rb +49 -0
  64. data/lib/solid/result/callable_and_then/config.rb +15 -0
  65. data/lib/solid/result/callable_and_then/error.rb +11 -0
  66. data/lib/solid/result/callable_and_then.rb +9 -0
  67. data/lib/solid/result/config/options.rb +27 -0
  68. data/lib/solid/result/config/switcher.rb +82 -0
  69. data/lib/solid/result/config/switchers/addons.rb +25 -0
  70. data/lib/solid/result/config/switchers/constant_aliases.rb +33 -0
  71. data/lib/solid/result/config/switchers/features.rb +32 -0
  72. data/lib/solid/result/config/switchers/pattern_matching.rb +20 -0
  73. data/lib/solid/result/config.rb +64 -0
  74. data/lib/solid/result/contract/disabled.rb +25 -0
  75. data/lib/solid/result/contract/error.rb +17 -0
  76. data/lib/solid/result/contract/evaluator.rb +45 -0
  77. data/lib/solid/result/contract/for_types.rb +29 -0
  78. data/lib/solid/result/contract/for_types_and_values.rb +46 -0
  79. data/lib/solid/result/contract/interface.rb +21 -0
  80. data/lib/solid/result/contract/type_checker.rb +37 -0
  81. data/lib/solid/result/contract.rb +33 -0
  82. data/lib/solid/result/data.rb +33 -0
  83. data/lib/solid/result/error.rb +59 -0
  84. data/lib/solid/result/event_logs/config.rb +28 -0
  85. data/lib/solid/result/event_logs/listener.rb +51 -0
  86. data/lib/solid/result/event_logs/listeners.rb +87 -0
  87. data/lib/solid/result/event_logs/tracking/disabled.rb +15 -0
  88. data/lib/solid/result/event_logs/tracking/enabled.rb +161 -0
  89. data/lib/solid/result/event_logs/tracking.rb +26 -0
  90. data/lib/solid/result/event_logs/tree.rb +141 -0
  91. data/lib/solid/result/event_logs.rb +27 -0
  92. data/lib/solid/result/expectations/mixin.rb +58 -0
  93. data/lib/solid/result/expectations.rb +75 -0
  94. data/lib/solid/result/failure.rb +11 -0
  95. data/lib/solid/result/handler/allowed_types.rb +45 -0
  96. data/lib/solid/result/handler.rb +57 -0
  97. data/lib/solid/result/ignored_types.rb +14 -0
  98. data/lib/solid/result/mixin.rb +72 -0
  99. data/lib/solid/result/success.rb +11 -0
  100. data/lib/solid/result/version.rb +7 -0
  101. data/lib/solid/result.rb +27 -0
  102. data/lib/solid/success.rb +23 -0
  103. data/lib/solid-result.rb +3 -0
  104. data/sig/solid/failure.rbs +13 -0
  105. data/sig/solid/output.rbs +175 -0
  106. data/sig/solid/result/callable_and_then.rbs +60 -0
  107. data/sig/solid/result/config.rbs +102 -0
  108. data/sig/solid/result/contract.rbs +120 -0
  109. data/sig/solid/result/data.rbs +16 -0
  110. data/sig/solid/result/error.rbs +34 -0
  111. data/sig/solid/result/event_logs.rbs +189 -0
  112. data/sig/solid/result/expectations.rbs +71 -0
  113. data/sig/solid/result/handler.rbs +47 -0
  114. data/sig/solid/result/ignored_types.rbs +9 -0
  115. data/sig/solid/result/mixin.rbs +45 -0
  116. data/sig/solid/result/version.rbs +5 -0
  117. data/sig/solid/result.rbs +85 -0
  118. data/sig/solid/success.rbs +13 -0
  119. 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,9 @@
1
+ class Solid::Result
2
+ module IgnoredTypes
3
+ LIST: ::Set[::Symbol]
4
+ GIVEN: ::Symbol
5
+ CONTINUE: ::Symbol
6
+
7
+ def self.include?: (::Symbol) -> bool
8
+ end
9
+ 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,5 @@
1
+ module Solid
2
+ class Result
3
+ VERSION: String
4
+ end
5
+ 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: []