clean-architecture 5.0.2 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +15 -19
  3. data/.gitignore +4 -0
  4. data/CHANGELOG.md +4 -0
  5. data/Gemfile +1 -0
  6. data/README.md +1 -585
  7. data/bin/tapioca +29 -0
  8. data/clean-architecture.gemspec +4 -4
  9. data/lib/clean-architecture.rb +4 -1
  10. data/lib/clean_architecture/adapters/all.rb +1 -1
  11. data/lib/clean_architecture/adapters/attribute_hash_base.rb +47 -20
  12. data/lib/clean_architecture/all.rb +1 -4
  13. data/lib/clean_architecture/builders/abstract_active_record_entity_builder.rb +43 -13
  14. data/lib/clean_architecture/builders/all.rb +1 -1
  15. data/lib/clean_architecture/checks/all.rb +1 -1
  16. data/lib/clean_architecture/checks/authorization.rb +11 -9
  17. data/lib/clean_architecture/entities/all.rb +1 -3
  18. data/lib/clean_architecture/entities/failure_details.rb +27 -17
  19. data/lib/clean_architecture/matchers/all.rb +1 -1
  20. data/lib/clean_architecture/matchers/use_case_result.rb +9 -3
  21. data/lib/clean_architecture/queries/all.rb +1 -1
  22. data/lib/clean_architecture/queries/http_failure_code.rb +8 -20
  23. data/lib/clean_architecture/queries/http_success_code.rb +14 -7
  24. data/lib/clean_architecture/serializers/all.rb +1 -1
  25. data/lib/clean_architecture/serializers/html_response_from_result.rb +7 -1
  26. data/lib/clean_architecture/serializers/json_response_from_result.rb +4 -4
  27. data/lib/clean_architecture/version.rb +1 -1
  28. data/nix/sources.json +14 -0
  29. data/nix/sources.nix +174 -0
  30. data/run_ci.sh +7 -0
  31. data/shell.nix +17 -12
  32. data/sorbet/config +4 -0
  33. data/sorbet/{rbi/gems → dry-monads-sorbet}/dry-monads.rbi +176 -94
  34. data/sorbet/rbi/gems/activemodel@6.1.4.1.rbi +1292 -0
  35. data/sorbet/rbi/gems/activerecord@6.1.4.1.rbi +8092 -0
  36. data/sorbet/rbi/gems/activesupport@6.1.4.1.rbi +3531 -0
  37. data/sorbet/rbi/gems/{ast.rbi → ast@2.4.2.rbi} +28 -22
  38. data/sorbet/rbi/gems/byebug@11.1.3.rbi +1568 -0
  39. data/sorbet/rbi/gems/coderay@1.1.3.rbi +1005 -0
  40. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +915 -0
  41. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +8 -0
  42. data/sorbet/rbi/gems/docile@1.4.0.rbi +54 -0
  43. data/sorbet/rbi/gems/dry-core@0.7.1.rbi +92 -0
  44. data/sorbet/rbi/gems/dry-equalizer@0.3.0.rbi +28 -0
  45. data/sorbet/rbi/gems/dry-matcher@0.9.0.rbi +56 -0
  46. data/sorbet/rbi/gems/dry-monads-sorbet@1.1.7.rbi +41 -0
  47. data/sorbet/rbi/gems/dry-monads@1.4.0.rbi +697 -0
  48. data/sorbet/rbi/gems/em-websocket@0.5.2.rbi +8 -0
  49. data/sorbet/rbi/gems/eventmachine@1.2.7.rbi +45 -0
  50. data/sorbet/rbi/gems/ffi@1.15.4.rbi +8 -0
  51. data/sorbet/rbi/gems/formatador@0.3.0.rbi +8 -0
  52. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +31 -0
  53. data/sorbet/rbi/gems/guard-livereload@2.5.2.rbi +8 -0
  54. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +211 -0
  55. data/sorbet/rbi/gems/guard@2.18.0.rbi +8 -0
  56. data/sorbet/rbi/gems/http_parser.rb@0.6.0.rbi +8 -0
  57. data/sorbet/rbi/gems/i18n@1.8.10.rbi +8 -0
  58. data/sorbet/rbi/gems/listen@3.7.0.rbi +8 -0
  59. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +8 -0
  60. data/sorbet/rbi/gems/method_source@1.0.0.rbi +72 -0
  61. data/sorbet/rbi/gems/minitest@5.14.4.rbi +344 -0
  62. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +8 -0
  63. data/sorbet/rbi/gems/nenv@0.3.0.rbi +8 -0
  64. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +8 -0
  65. data/sorbet/rbi/gems/parallel@1.21.0.rbi +113 -0
  66. data/sorbet/rbi/gems/{parser.rbi → parser@3.0.2.0.rbi} +966 -699
  67. data/sorbet/rbi/gems/pry-byebug@3.9.0.rbi +461 -0
  68. data/sorbet/rbi/gems/{pry.rbi → pry@0.13.1.rbi} +2191 -1605
  69. data/sorbet/rbi/gems/{rainbow.rbi → rainbow@3.0.0.rbi} +90 -55
  70. data/sorbet/rbi/gems/{rake.rbi → rake@13.0.6.rbi} +578 -427
  71. data/sorbet/rbi/gems/rb-fsevent@0.11.0.rbi +8 -0
  72. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +8 -0
  73. data/sorbet/rbi/gems/rb-readline@0.5.5.rbi +884 -0
  74. data/sorbet/rbi/gems/rbi@0.0.6.rbi +1405 -0
  75. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +1120 -0
  76. data/sorbet/rbi/gems/{rexml.rbi → rexml@3.2.5.rbi} +562 -479
  77. data/sorbet/rbi/gems/{rspec-core.rbi → rspec-core@3.10.1.rbi} +2317 -1533
  78. data/sorbet/rbi/gems/rspec-expectations@3.10.1.rbi +1574 -0
  79. data/sorbet/rbi/gems/rspec-mocks@3.10.2.rbi +1462 -0
  80. data/sorbet/rbi/gems/rspec-support@3.10.2.rbi +509 -0
  81. data/sorbet/rbi/gems/rspec@3.10.0.rbi +38 -0
  82. data/sorbet/rbi/gems/rubocop-ast@1.12.0.rbi +1938 -0
  83. data/sorbet/rbi/gems/rubocop-rspec@2.5.0.rbi +1786 -0
  84. data/sorbet/rbi/gems/rubocop@1.22.1.rbi +13252 -0
  85. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  86. data/sorbet/rbi/gems/shellany@0.0.1.rbi +8 -0
  87. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +89 -0
  88. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +577 -0
  89. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +8 -0
  90. data/sorbet/rbi/gems/sorbet-struct-comparable@1.1.0.rbi +17 -0
  91. data/sorbet/rbi/gems/spoom@1.1.5.rbi +1241 -0
  92. data/sorbet/rbi/gems/stackprof@0.2.17.rbi +98 -0
  93. data/sorbet/rbi/gems/tapioca@0.5.2.rbi +949 -0
  94. data/sorbet/rbi/gems/thor@1.1.0.rbi +839 -0
  95. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +8 -0
  96. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +26 -0
  97. data/sorbet/rbi/gems/unparser@0.6.0.rbi +8 -0
  98. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +8 -0
  99. data/sorbet/tapioca/require.rb +9 -0
  100. metadata +88 -91
  101. data/.ruby-version +0 -1
  102. data/lib/clean_architecture/entities/targeted_parameters.rb +0 -24
  103. data/lib/clean_architecture/entities/untargeted_parameters.rb +0 -21
  104. data/lib/clean_architecture/interfaces/all.rb +0 -12
  105. data/lib/clean_architecture/interfaces/authorization_parameters.rb +0 -19
  106. data/lib/clean_architecture/interfaces/base_parameters.rb +0 -24
  107. data/lib/clean_architecture/interfaces/jsonable.rb +0 -16
  108. data/lib/clean_architecture/interfaces/targeted_parameters.rb +0 -19
  109. data/lib/clean_architecture/interfaces/use_case.rb +0 -20
  110. data/lib/clean_architecture/interfaces/use_case_actor.rb +0 -20
  111. data/lib/clean_architecture/interfaces/use_case_target.rb +0 -24
  112. data/lib/clean_architecture/types.rb +0 -8
  113. data/lib/clean_architecture/use_cases/abstract_use_case.rb +0 -63
  114. data/lib/clean_architecture/use_cases/all.rb +0 -10
  115. data/lib/clean_architecture/use_cases/contract.rb +0 -9
  116. data/lib/clean_architecture/use_cases/errors.rb +0 -58
  117. data/lib/clean_architecture/use_cases/form.rb +0 -116
  118. data/lib/clean_architecture/use_cases/parameters.rb +0 -43
  119. data/sorbet/rbi/gems/activemodel.rbi +0 -75
  120. data/sorbet/rbi/gems/activesupport.rbi +0 -440
  121. data/sorbet/rbi/gems/byebug.rbi +0 -1040
  122. data/sorbet/rbi/gems/coderay.rbi +0 -92
  123. data/sorbet/rbi/gems/concurrent-ruby.rbi +0 -1586
  124. data/sorbet/rbi/gems/docile.rbi +0 -32
  125. data/sorbet/rbi/gems/dry-configurable.rbi +0 -139
  126. data/sorbet/rbi/gems/dry-container.rbi +0 -89
  127. data/sorbet/rbi/gems/dry-core.rbi +0 -80
  128. data/sorbet/rbi/gems/dry-equalizer.rbi +0 -26
  129. data/sorbet/rbi/gems/dry-inflector.rbi +0 -73
  130. data/sorbet/rbi/gems/dry-initializer.rbi +0 -209
  131. data/sorbet/rbi/gems/dry-logic.rbi +0 -305
  132. data/sorbet/rbi/gems/dry-matcher.rbi +0 -34
  133. data/sorbet/rbi/gems/dry-schema.rbi +0 -786
  134. data/sorbet/rbi/gems/dry-struct.rbi +0 -137
  135. data/sorbet/rbi/gems/dry-types.rbi +0 -709
  136. data/sorbet/rbi/gems/dry-validation.rbi +0 -288
  137. data/sorbet/rbi/gems/duckface-interfaces.rbi +0 -94
  138. data/sorbet/rbi/gems/i18n.rbi +0 -133
  139. data/sorbet/rbi/gems/jaro_winkler.rbi +0 -15
  140. data/sorbet/rbi/gems/method_source.rbi +0 -64
  141. data/sorbet/rbi/gems/parallel.rbi +0 -82
  142. data/sorbet/rbi/gems/pry-byebug.rbi +0 -155
  143. data/sorbet/rbi/gems/rb-readline.rbi +0 -767
  144. data/sorbet/rbi/gems/rspec-expectations.rbi +0 -398
  145. data/sorbet/rbi/gems/rspec-mocks.rbi +0 -816
  146. data/sorbet/rbi/gems/rspec-support.rbi +0 -271
  147. data/sorbet/rbi/gems/rspec.rbi +0 -15
  148. data/sorbet/rbi/gems/rubocop-rspec.rbi +0 -922
  149. data/sorbet/rbi/gems/rubocop.rbi +0 -7319
  150. data/sorbet/rbi/gems/ruby-progressbar.rbi +0 -305
  151. data/sorbet/rbi/gems/simplecov-html.rbi +0 -35
  152. data/sorbet/rbi/gems/simplecov.rbi +0 -361
  153. data/sorbet/rbi/gems/stackprof.rbi +0 -52
  154. data/sorbet/rbi/gems/unicode-display_width.rbi +0 -17
  155. data/sorbet/rbi/hidden-definitions/errors.txt +0 -8580
  156. data/sorbet/rbi/hidden-definitions/hidden.rbi +0 -17036
  157. data/sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi +0 -452
  158. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi +0 -23
  159. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +0 -979
  160. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  161. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +0 -108
  162. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +0 -276
  163. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  164. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  165. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
  166. data/sorbet/rbi/todo.rbi +0 -10
@@ -0,0 +1,8 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `diff-lcs` gem.
3
+ # Please instead update this file by running `bin/tapioca gem diff-lcs`.
4
+
5
+ # typed: true
6
+
7
+ # THIS IS AN EMPTY RBI FILE.
8
+ # see https://github.com/Shopify/tapioca/wiki/Manual-Gem-Requires
@@ -0,0 +1,54 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `docile` gem.
3
+ # Please instead update this file by running `bin/tapioca gem docile`.
4
+
5
+ # typed: true
6
+
7
+ module Docile
8
+ extend ::Docile::Execution
9
+
10
+ private
11
+
12
+ def dsl_eval(dsl, *args, &block); end
13
+ def dsl_eval_immutable(dsl, *args, &block); end
14
+ def dsl_eval_with_block_return(dsl, *args, &block); end
15
+
16
+ class << self
17
+ def dsl_eval(dsl, *args, &block); end
18
+ def dsl_eval_immutable(dsl, *args, &block); end
19
+ def dsl_eval_with_block_return(dsl, *args, &block); end
20
+ end
21
+ end
22
+
23
+ module Docile::BacktraceFilter
24
+ def backtrace; end
25
+ def backtrace_locations; end
26
+ end
27
+
28
+ Docile::BacktraceFilter::FILTER_PATTERN = T.let(T.unsafe(nil), Regexp)
29
+
30
+ class Docile::ChainingFallbackContextProxy < ::Docile::FallbackContextProxy
31
+ def method_missing(method, *args, &block); end
32
+ end
33
+
34
+ module Docile::Execution
35
+ private
36
+
37
+ def exec_in_proxy_context(dsl, proxy_type, *args, &block); end
38
+
39
+ class << self
40
+ def exec_in_proxy_context(dsl, proxy_type, *args, &block); end
41
+ end
42
+ end
43
+
44
+ class Docile::FallbackContextProxy
45
+ def initialize(receiver, fallback); end
46
+
47
+ def instance_variables; end
48
+ def method_missing(method, *args, &block); end
49
+ end
50
+
51
+ Docile::FallbackContextProxy::NON_FALLBACK_METHODS = T.let(T.unsafe(nil), Set)
52
+ Docile::FallbackContextProxy::NON_PROXIED_INSTANCE_VARIABLES = T.let(T.unsafe(nil), Set)
53
+ Docile::FallbackContextProxy::NON_PROXIED_METHODS = T.let(T.unsafe(nil), Set)
54
+ Docile::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,92 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `dry-core` gem.
3
+ # Please instead update this file by running `bin/tapioca gem dry-core`.
4
+
5
+ # typed: true
6
+
7
+ module Dry
8
+ class << self
9
+ def Equalizer(*keys, **options); end
10
+ end
11
+ end
12
+
13
+ module Dry::Core; end
14
+
15
+ module Dry::Core::ClassAttributes
16
+ include ::Dry::Core::Constants
17
+
18
+ def defines(*args, type: T.unsafe(nil), coerce: T.unsafe(nil)); end
19
+ end
20
+
21
+ Dry::Core::ClassAttributes::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)
22
+ Dry::Core::ClassAttributes::EMPTY_HASH = T.let(T.unsafe(nil), Hash)
23
+ Dry::Core::ClassAttributes::EMPTY_OPTS = T.let(T.unsafe(nil), Hash)
24
+ Dry::Core::ClassAttributes::EMPTY_SET = T.let(T.unsafe(nil), Set)
25
+ Dry::Core::ClassAttributes::EMPTY_STRING = T.let(T.unsafe(nil), String)
26
+ Dry::Core::ClassAttributes::IDENTITY = T.let(T.unsafe(nil), Proc)
27
+ Dry::Core::ClassAttributes::Self = T.let(T.unsafe(nil), Proc)
28
+ Dry::Core::ClassAttributes::Undefined = T.let(T.unsafe(nil), Object)
29
+
30
+ module Dry::Core::Constants
31
+ class << self
32
+ def included(base); end
33
+ end
34
+ end
35
+
36
+ Dry::Core::Constants::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)
37
+ Dry::Core::Constants::EMPTY_HASH = T.let(T.unsafe(nil), Hash)
38
+ Dry::Core::Constants::EMPTY_OPTS = T.let(T.unsafe(nil), Hash)
39
+ Dry::Core::Constants::EMPTY_SET = T.let(T.unsafe(nil), Set)
40
+ Dry::Core::Constants::EMPTY_STRING = T.let(T.unsafe(nil), String)
41
+ Dry::Core::Constants::IDENTITY = T.let(T.unsafe(nil), Proc)
42
+ Dry::Core::Constants::Self = T.let(T.unsafe(nil), Proc)
43
+ Dry::Core::Constants::Undefined = T.let(T.unsafe(nil), Object)
44
+
45
+ module Dry::Core::Deprecations
46
+ class << self
47
+ def [](tag); end
48
+ def announce(name, msg, tag: T.unsafe(nil), uplevel: T.unsafe(nil)); end
49
+ def deprecated_name_message(old, new = T.unsafe(nil), msg = T.unsafe(nil)); end
50
+ def deprecation_message(name, msg); end
51
+ def logger(output = T.unsafe(nil)); end
52
+ def set_logger!(output = T.unsafe(nil)); end
53
+ def warn(msg, tag: T.unsafe(nil), uplevel: T.unsafe(nil)); end
54
+ end
55
+ end
56
+
57
+ module Dry::Core::Deprecations::Interface
58
+ def deprecate(old_name, new_name = T.unsafe(nil), message: T.unsafe(nil)); end
59
+ def deprecate_class_method(old_name, new_name = T.unsafe(nil), message: T.unsafe(nil)); end
60
+ def deprecate_constant(constant_name, message: T.unsafe(nil)); end
61
+ def deprecation_tag(tag = T.unsafe(nil)); end
62
+ def warn(msg); end
63
+ end
64
+
65
+ Dry::Core::Deprecations::STACK = T.let(T.unsafe(nil), Proc)
66
+
67
+ class Dry::Core::Deprecations::Tagged < ::Module
68
+ def initialize(tag); end
69
+
70
+ def extended(base); end
71
+ end
72
+
73
+ class Dry::Core::Equalizer < ::Module
74
+ def initialize(*keys, **options); end
75
+
76
+ private
77
+
78
+ def define_cmp_method; end
79
+ def define_hash_method(immutable:); end
80
+ def define_inspect_method; end
81
+ def define_methods(inspect: T.unsafe(nil), immutable: T.unsafe(nil)); end
82
+ def included(descendant); end
83
+ end
84
+
85
+ module Dry::Core::Equalizer::Methods
86
+ def ==(other); end
87
+ def eql?(other); end
88
+ end
89
+
90
+ class Dry::Core::InvalidClassAttributeValue < ::StandardError
91
+ def initialize(name, value); end
92
+ end
@@ -0,0 +1,28 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `dry-equalizer` gem.
3
+ # Please instead update this file by running `bin/tapioca gem dry-equalizer`.
4
+
5
+ # typed: true
6
+
7
+ module Dry
8
+ class << self
9
+ def Equalizer(*keys, **options); end
10
+ end
11
+ end
12
+
13
+ class Dry::Equalizer < ::Module
14
+ def initialize(*keys, **options); end
15
+
16
+ private
17
+
18
+ def define_cmp_method; end
19
+ def define_hash_method(immutable:); end
20
+ def define_inspect_method; end
21
+ def define_methods(inspect: T.unsafe(nil), immutable: T.unsafe(nil)); end
22
+ def included(descendant); end
23
+ end
24
+
25
+ module Dry::Equalizer::Methods
26
+ def ==(other); end
27
+ def eql?(other); end
28
+ end
@@ -0,0 +1,56 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `dry-matcher` gem.
3
+ # Please instead update this file by running `bin/tapioca gem dry-matcher`.
4
+
5
+ # typed: true
6
+
7
+ module Dry
8
+ class << self
9
+ def Equalizer(*keys, **options); end
10
+ end
11
+ end
12
+
13
+ class Dry::Matcher
14
+ include ::Dry::Core::Constants
15
+
16
+ def initialize(cases = T.unsafe(nil)); end
17
+
18
+ def call(result, &block); end
19
+ def cases; end
20
+ def for(*methods); end
21
+
22
+ class << self
23
+ def for(*match_methods, with:); end
24
+ end
25
+ end
26
+
27
+ class Dry::Matcher::Case
28
+ def initialize(match: T.unsafe(nil), resolve: T.unsafe(nil), &block); end
29
+
30
+ def call(value, patterns = T.unsafe(nil), &block); end
31
+ end
32
+
33
+ Dry::Matcher::Case::DEFAULT_RESOLVE = T.let(T.unsafe(nil), Proc)
34
+ Dry::Matcher::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)
35
+ Dry::Matcher::EMPTY_HASH = T.let(T.unsafe(nil), Hash)
36
+ Dry::Matcher::EMPTY_OPTS = T.let(T.unsafe(nil), Hash)
37
+ Dry::Matcher::EMPTY_SET = T.let(T.unsafe(nil), Set)
38
+ Dry::Matcher::EMPTY_STRING = T.let(T.unsafe(nil), String)
39
+
40
+ class Dry::Matcher::Evaluator
41
+ def initialize(result, cases); end
42
+
43
+ def call; end
44
+ def method_missing(name, *args, &block); end
45
+
46
+ private
47
+
48
+ def ensure_exhaustive_match; end
49
+ def respond_to_missing?(name, _include_private = T.unsafe(nil)); end
50
+ end
51
+
52
+ Dry::Matcher::IDENTITY = T.let(T.unsafe(nil), Proc)
53
+ class Dry::Matcher::NonExhaustiveMatchError < ::StandardError; end
54
+ Dry::Matcher::RUBY2_KEYWORDS = T.let(T.unsafe(nil), TrueClass)
55
+ Dry::Matcher::Self = T.let(T.unsafe(nil), Proc)
56
+ Dry::Matcher::Undefined = T.let(T.unsafe(nil), Object)
@@ -0,0 +1,41 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `dry-monads-sorbet` gem.
3
+ # Please instead update this file by running `typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ class Dry::Monads::Maybe
8
+ include(::Dry::Monads::Transformer)
9
+
10
+ def failure?; end
11
+ def monad; end
12
+ def none?; end
13
+ def some?; end
14
+ def success?; end
15
+ def to_maybe; end
16
+ def to_monad; end
17
+
18
+ class << self
19
+ def coerce(value); end
20
+ def lift(*args, &block); end
21
+ def pure(value = T.unsafe(nil), &block); end
22
+ def to_proc; end
23
+ end
24
+ end
25
+
26
+ class Dry::Monads::Result
27
+ include(::Dry::Monads::Transformer)
28
+
29
+ def failure; end
30
+ def monad; end
31
+ def success; end
32
+ def to_monad; end
33
+ def to_result; end
34
+
35
+ class << self
36
+ def pure(value = T.unsafe(nil), &block); end
37
+ end
38
+ end
39
+
40
+ module DryMonadsSorbet
41
+ end