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 `tzinfo` gem.
3
+ # Please instead update this file by running `bin/tapioca gem tzinfo`.
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,26 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `unicode-display_width` gem.
3
+ # Please instead update this file by running `bin/tapioca gem unicode-display_width`.
4
+
5
+ # typed: true
6
+
7
+ module Unicode; end
8
+
9
+ class Unicode::DisplayWidth
10
+ def initialize(ambiguous: T.unsafe(nil), overwrite: T.unsafe(nil), emoji: T.unsafe(nil)); end
11
+
12
+ def get_config(**kwargs); end
13
+ def of(string, **kwargs); end
14
+
15
+ class << self
16
+ def emoji_extra_width_of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), _ = T.unsafe(nil)); end
17
+ def of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), options = T.unsafe(nil)); end
18
+ end
19
+ end
20
+
21
+ Unicode::DisplayWidth::DATA_DIRECTORY = T.let(T.unsafe(nil), String)
22
+ Unicode::DisplayWidth::DEPTHS = T.let(T.unsafe(nil), Array)
23
+ Unicode::DisplayWidth::INDEX = T.let(T.unsafe(nil), Array)
24
+ Unicode::DisplayWidth::INDEX_FILENAME = T.let(T.unsafe(nil), String)
25
+ Unicode::DisplayWidth::UNICODE_VERSION = T.let(T.unsafe(nil), String)
26
+ Unicode::DisplayWidth::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,8 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `unparser` gem.
3
+ # Please instead update this file by running `bin/tapioca gem unparser`.
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,8 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `zeitwerk` gem.
3
+ # Please instead update this file by running `bin/tapioca gem zeitwerk`.
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,9 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require 'active_model'
5
+ require 'active_record'
6
+ require 'active_support'
7
+ require 'dry-equalizer'
8
+ require 'minitest'
9
+ require 'sorbet-struct-comparable'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clean-architecture
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bellroy Tech Team
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-04 00:00:00.000000000 Z
11
+ date: 1980-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5'
41
41
  - !ruby/object:Gem::Dependency
42
- name: dry-matcher
42
+ name: activerecord
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '5'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '5'
55
55
  - !ruby/object:Gem::Dependency
56
- name: dry-monads
56
+ name: dry-matcher
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: dry-struct
70
+ name: dry-monads
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: dry-types
84
+ name: dry-monads-sorbet
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,21 +95,21 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: dry-validation
98
+ name: sorbet
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.0
103
+ version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.0
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: duckface-interfaces
112
+ name: sorbet-runtime
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: sorbet-runtime
126
+ name: sorbet-struct-comparable
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -192,12 +192,12 @@ files:
192
192
  - ".reek.yml"
193
193
  - ".rspec"
194
194
  - ".rubocop.yml"
195
- - ".ruby-version"
196
195
  - CHANGELOG.md
197
196
  - Gemfile
198
197
  - Guardfile
199
198
  - README.md
200
199
  - Rakefile
200
+ - bin/tapioca
201
201
  - clean-architecture.gemspec
202
202
  - generate_require_files.rb
203
203
  - lib/clean-architecture.rb
@@ -210,16 +210,6 @@ files:
210
210
  - lib/clean_architecture/checks/authorization.rb
211
211
  - lib/clean_architecture/entities/all.rb
212
212
  - lib/clean_architecture/entities/failure_details.rb
213
- - lib/clean_architecture/entities/targeted_parameters.rb
214
- - lib/clean_architecture/entities/untargeted_parameters.rb
215
- - lib/clean_architecture/interfaces/all.rb
216
- - lib/clean_architecture/interfaces/authorization_parameters.rb
217
- - lib/clean_architecture/interfaces/base_parameters.rb
218
- - lib/clean_architecture/interfaces/jsonable.rb
219
- - lib/clean_architecture/interfaces/targeted_parameters.rb
220
- - lib/clean_architecture/interfaces/use_case.rb
221
- - lib/clean_architecture/interfaces/use_case_actor.rb
222
- - lib/clean_architecture/interfaces/use_case_target.rb
223
213
  - lib/clean_architecture/matchers/all.rb
224
214
  - lib/clean_architecture/matchers/use_case_result.rb
225
215
  - lib/clean_architecture/queries/all.rb
@@ -228,77 +218,84 @@ files:
228
218
  - lib/clean_architecture/serializers/all.rb
229
219
  - lib/clean_architecture/serializers/html_response_from_result.rb
230
220
  - lib/clean_architecture/serializers/json_response_from_result.rb
231
- - lib/clean_architecture/types.rb
232
- - lib/clean_architecture/use_cases/abstract_use_case.rb
233
- - lib/clean_architecture/use_cases/all.rb
234
- - lib/clean_architecture/use_cases/contract.rb
235
- - lib/clean_architecture/use_cases/errors.rb
236
- - lib/clean_architecture/use_cases/form.rb
237
- - lib/clean_architecture/use_cases/parameters.rb
238
221
  - lib/clean_architecture/version.rb
222
+ - nix/sources.json
223
+ - nix/sources.nix
224
+ - run_ci.sh
239
225
  - shell.nix
240
226
  - sorbet/config
241
- - sorbet/rbi/gems/activemodel.rbi
242
- - sorbet/rbi/gems/activesupport.rbi
243
- - sorbet/rbi/gems/ast.rbi
244
- - sorbet/rbi/gems/byebug.rbi
245
- - sorbet/rbi/gems/coderay.rbi
246
- - sorbet/rbi/gems/concurrent-ruby.rbi
247
- - sorbet/rbi/gems/docile.rbi
248
- - sorbet/rbi/gems/dry-configurable.rbi
249
- - sorbet/rbi/gems/dry-container.rbi
250
- - sorbet/rbi/gems/dry-core.rbi
251
- - sorbet/rbi/gems/dry-equalizer.rbi
252
- - sorbet/rbi/gems/dry-inflector.rbi
253
- - sorbet/rbi/gems/dry-initializer.rbi
254
- - sorbet/rbi/gems/dry-logic.rbi
255
- - sorbet/rbi/gems/dry-matcher.rbi
256
- - sorbet/rbi/gems/dry-monads.rbi
257
- - sorbet/rbi/gems/dry-schema.rbi
258
- - sorbet/rbi/gems/dry-struct.rbi
259
- - sorbet/rbi/gems/dry-types.rbi
260
- - sorbet/rbi/gems/dry-validation.rbi
261
- - sorbet/rbi/gems/duckface-interfaces.rbi
262
- - sorbet/rbi/gems/i18n.rbi
263
- - sorbet/rbi/gems/jaro_winkler.rbi
264
- - sorbet/rbi/gems/method_source.rbi
265
- - sorbet/rbi/gems/parallel.rbi
266
- - sorbet/rbi/gems/parser.rbi
267
- - sorbet/rbi/gems/pry-byebug.rbi
268
- - sorbet/rbi/gems/pry.rbi
269
- - sorbet/rbi/gems/rainbow.rbi
270
- - sorbet/rbi/gems/rake.rbi
271
- - sorbet/rbi/gems/rb-readline.rbi
272
- - sorbet/rbi/gems/rexml.rbi
273
- - sorbet/rbi/gems/rspec-core.rbi
274
- - sorbet/rbi/gems/rspec-expectations.rbi
275
- - sorbet/rbi/gems/rspec-mocks.rbi
276
- - sorbet/rbi/gems/rspec-support.rbi
277
- - sorbet/rbi/gems/rspec.rbi
278
- - sorbet/rbi/gems/rubocop-rspec.rbi
279
- - sorbet/rbi/gems/rubocop.rbi
280
- - sorbet/rbi/gems/ruby-progressbar.rbi
281
- - sorbet/rbi/gems/simplecov-html.rbi
282
- - sorbet/rbi/gems/simplecov.rbi
283
- - sorbet/rbi/gems/stackprof.rbi
284
- - sorbet/rbi/gems/unicode-display_width.rbi
285
- - sorbet/rbi/hidden-definitions/errors.txt
286
- - sorbet/rbi/hidden-definitions/hidden.rbi
287
- - sorbet/rbi/sorbet-typed/lib/activemodel/all/activemodel.rbi
288
- - sorbet/rbi/sorbet-typed/lib/activesupport/>=6.0.0.rc1/activesupport.rbi
289
- - sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi
290
- - sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi
291
- - sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi
292
- - sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi
293
- - sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi
294
- - sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi
295
- - sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi
296
- - sorbet/rbi/todo.rbi
227
+ - sorbet/dry-monads-sorbet/dry-monads.rbi
228
+ - sorbet/rbi/gems/activemodel@6.1.4.1.rbi
229
+ - sorbet/rbi/gems/activerecord@6.1.4.1.rbi
230
+ - sorbet/rbi/gems/activesupport@6.1.4.1.rbi
231
+ - sorbet/rbi/gems/ast@2.4.2.rbi
232
+ - sorbet/rbi/gems/byebug@11.1.3.rbi
233
+ - sorbet/rbi/gems/coderay@1.1.3.rbi
234
+ - sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi
235
+ - sorbet/rbi/gems/diff-lcs@1.4.4.rbi
236
+ - sorbet/rbi/gems/docile@1.4.0.rbi
237
+ - sorbet/rbi/gems/dry-core@0.7.1.rbi
238
+ - sorbet/rbi/gems/dry-equalizer@0.3.0.rbi
239
+ - sorbet/rbi/gems/dry-matcher@0.9.0.rbi
240
+ - sorbet/rbi/gems/dry-monads-sorbet@1.1.7.rbi
241
+ - sorbet/rbi/gems/dry-monads@1.4.0.rbi
242
+ - sorbet/rbi/gems/em-websocket@0.5.2.rbi
243
+ - sorbet/rbi/gems/eventmachine@1.2.7.rbi
244
+ - sorbet/rbi/gems/ffi@1.15.4.rbi
245
+ - sorbet/rbi/gems/formatador@0.3.0.rbi
246
+ - sorbet/rbi/gems/guard-compat@1.2.1.rbi
247
+ - sorbet/rbi/gems/guard-livereload@2.5.2.rbi
248
+ - sorbet/rbi/gems/guard-rspec@4.7.3.rbi
249
+ - sorbet/rbi/gems/guard@2.18.0.rbi
250
+ - sorbet/rbi/gems/http_parser.rb@0.6.0.rbi
251
+ - sorbet/rbi/gems/i18n@1.8.10.rbi
252
+ - sorbet/rbi/gems/listen@3.7.0.rbi
253
+ - sorbet/rbi/gems/lumberjack@1.2.8.rbi
254
+ - sorbet/rbi/gems/method_source@1.0.0.rbi
255
+ - sorbet/rbi/gems/minitest@5.14.4.rbi
256
+ - sorbet/rbi/gems/multi_json@1.15.0.rbi
257
+ - sorbet/rbi/gems/nenv@0.3.0.rbi
258
+ - sorbet/rbi/gems/notiffany@0.1.3.rbi
259
+ - sorbet/rbi/gems/parallel@1.21.0.rbi
260
+ - sorbet/rbi/gems/parser@3.0.2.0.rbi
261
+ - sorbet/rbi/gems/pry-byebug@3.9.0.rbi
262
+ - sorbet/rbi/gems/pry@0.13.1.rbi
263
+ - sorbet/rbi/gems/rainbow@3.0.0.rbi
264
+ - sorbet/rbi/gems/rake@13.0.6.rbi
265
+ - sorbet/rbi/gems/rb-fsevent@0.11.0.rbi
266
+ - sorbet/rbi/gems/rb-inotify@0.10.1.rbi
267
+ - sorbet/rbi/gems/rb-readline@0.5.5.rbi
268
+ - sorbet/rbi/gems/rbi@0.0.6.rbi
269
+ - sorbet/rbi/gems/regexp_parser@2.1.1.rbi
270
+ - sorbet/rbi/gems/rexml@3.2.5.rbi
271
+ - sorbet/rbi/gems/rspec-core@3.10.1.rbi
272
+ - sorbet/rbi/gems/rspec-expectations@3.10.1.rbi
273
+ - sorbet/rbi/gems/rspec-mocks@3.10.2.rbi
274
+ - sorbet/rbi/gems/rspec-support@3.10.2.rbi
275
+ - sorbet/rbi/gems/rspec@3.10.0.rbi
276
+ - sorbet/rbi/gems/rubocop-ast@1.12.0.rbi
277
+ - sorbet/rbi/gems/rubocop-rspec@2.5.0.rbi
278
+ - sorbet/rbi/gems/rubocop@1.22.1.rbi
279
+ - sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi
280
+ - sorbet/rbi/gems/shellany@0.0.1.rbi
281
+ - sorbet/rbi/gems/simplecov-html@0.12.3.rbi
282
+ - sorbet/rbi/gems/simplecov@0.21.2.rbi
283
+ - sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi
284
+ - sorbet/rbi/gems/sorbet-struct-comparable@1.1.0.rbi
285
+ - sorbet/rbi/gems/spoom@1.1.5.rbi
286
+ - sorbet/rbi/gems/stackprof@0.2.17.rbi
287
+ - sorbet/rbi/gems/tapioca@0.5.2.rbi
288
+ - sorbet/rbi/gems/thor@1.1.0.rbi
289
+ - sorbet/rbi/gems/tzinfo@2.0.4.rbi
290
+ - sorbet/rbi/gems/unicode-display_width@2.1.0.rbi
291
+ - sorbet/rbi/gems/unparser@0.6.0.rbi
292
+ - sorbet/rbi/gems/zeitwerk@2.4.2.rbi
293
+ - sorbet/tapioca/require.rb
297
294
  homepage: https://bellroy.com
298
295
  licenses: []
299
296
  metadata:
300
297
  allowed_push_host: https://rubygems.org
301
- post_install_message:
298
+ post_install_message:
302
299
  rdoc_options: []
303
300
  require_paths:
304
301
  - lib
@@ -313,8 +310,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
310
  - !ruby/object:Gem::Version
314
311
  version: '0'
315
312
  requirements: []
316
- rubygems_version: 3.1.2
317
- signing_key:
313
+ rubygems_version: 3.2.16
314
+ signing_key:
318
315
  specification_version: 4
319
316
  summary: Bellroy Clean Architecture Framework
320
317
  test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.6.6
@@ -1,24 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require 'clean_architecture/interfaces/targeted_parameters'
5
- require 'clean_architecture/interfaces/authorization_parameters'
6
-
7
- module CleanArchitecture
8
- module Entities
9
- class TargetedParameters
10
- attr_reader :actor, :extra_parameters_hash, :gateway, :target, :settings
11
-
12
- implements_interface Interfaces::TargetedParameters
13
- implements_interface Interfaces::AuthorizationParameters
14
-
15
- def initialize(actor, target, extra_parameters_hash, gateway, settings)
16
- @actor = actor
17
- @target = target
18
- @extra_parameters_hash = extra_parameters_hash
19
- @gateway = gateway
20
- @settings = settings
21
- end
22
- end
23
- end
24
- end
@@ -1,21 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require 'clean_architecture/interfaces/base_parameters'
5
-
6
- module CleanArchitecture
7
- module Entities
8
- class UntargetedParameters
9
- attr_reader :actor, :extra_parameters_hash, :gateway, :settings
10
-
11
- implements_interface Interfaces::BaseParameters
12
-
13
- def initialize(actor, extra_parameters_hash, gateway, settings)
14
- @actor = actor
15
- @extra_parameters_hash = extra_parameters_hash
16
- @gateway = gateway
17
- @settings = settings
18
- end
19
- end
20
- end
21
- end
@@ -1,12 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- # THIS FILE IS AUTOGENERATED AND SHOULD NOT BE MANUALLY MODIFIED
5
-
6
- require 'clean_architecture/interfaces/authorization_parameters'
7
- require 'clean_architecture/interfaces/base_parameters'
8
- require 'clean_architecture/interfaces/jsonable'
9
- require 'clean_architecture/interfaces/targeted_parameters'
10
- require 'clean_architecture/interfaces/use_case'
11
- require 'clean_architecture/interfaces/use_case_actor'
12
- require 'clean_architecture/interfaces/use_case_target'
@@ -1,19 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'clean_architecture/interfaces/base_parameters'
5
- require 'duckface'
6
-
7
- module CleanArchitecture
8
- module Interfaces
9
- module AuthorizationParameters
10
- extend Duckface::ActsAsInterface
11
-
12
- include BaseParameters
13
-
14
- def actor
15
- raise NotImplementedError
16
- end
17
- end
18
- end
19
- end
@@ -1,24 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'duckface'
5
-
6
- module CleanArchitecture
7
- module Interfaces
8
- module BaseParameters
9
- extend Duckface::ActsAsInterface
10
-
11
- def extra_parameters_hash
12
- raise NotImplementedError
13
- end
14
-
15
- def gateway
16
- raise NotImplementedError
17
- end
18
-
19
- def settings
20
- raise NotImplementedError
21
- end
22
- end
23
- end
24
- end
@@ -1,16 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'duckface'
5
-
6
- module CleanArchitecture
7
- module Interfaces
8
- module Jsonable
9
- extend Duckface::ActsAsInterface
10
-
11
- def to_json
12
- raise NotImplementedError
13
- end
14
- end
15
- end
16
- end
@@ -1,19 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'clean_architecture/interfaces/base_parameters'
5
- require 'duckface'
6
-
7
- module CleanArchitecture
8
- module Interfaces
9
- module TargetedParameters
10
- extend Duckface::ActsAsInterface
11
-
12
- include BaseParameters
13
-
14
- def target
15
- raise NotImplementedError
16
- end
17
- end
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'duckface'
5
-
6
- module CleanArchitecture
7
- module Interfaces
8
- module UseCase
9
- extend Duckface::ActsAsInterface
10
-
11
- def initialize(_parameters)
12
- raise NotImplementedError
13
- end
14
-
15
- def result
16
- raise NotImplementedError
17
- end
18
- end
19
- end
20
- end
@@ -1,20 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'duckface'
5
-
6
- module CleanArchitecture
7
- module Interfaces
8
- module UseCaseActor
9
- extend Duckface::ActsAsInterface
10
-
11
- def authorized?(_action, _target)
12
- raise NotImplementedError
13
- end
14
-
15
- def user_identifier
16
- raise NotImplementedError
17
- end
18
- end
19
- end
20
- end
@@ -1,24 +0,0 @@
1
- # typed: false
2
- # frozen_string_literal: true
3
-
4
- require 'duckface'
5
-
6
- module CleanArchitecture
7
- module Interfaces
8
- module UseCaseTarget
9
- extend Duckface::ActsAsInterface
10
-
11
- def attribute_hash
12
- raise NotImplementedError
13
- end
14
-
15
- def identifier
16
- raise NotImplementedError
17
- end
18
-
19
- def type_name
20
- raise NotImplementedError
21
- end
22
- end
23
- end
24
- end
@@ -1,8 +0,0 @@
1
- # typed: ignore
2
- # frozen_string_literal: true
3
-
4
- require 'dry-types'
5
-
6
- module Types
7
- include Dry.Types()
8
- end
@@ -1,63 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require 'dry/monads/result'
5
- require 'dry/validation'
6
- require 'dry/matcher/result_matcher'
7
- require 'clean_architecture/use_cases/errors'
8
- require 'clean_architecture/use_cases/parameters'
9
- require 'clean_architecture/use_cases/contract'
10
- require 'clean_architecture/entities/failure_details'
11
- require 'forwardable'
12
-
13
- module CleanArchitecture
14
- module UseCases
15
- class AbstractUseCase
16
- extend Forwardable
17
-
18
- @contract = nil
19
-
20
- def self.contract(base_contract = Contract)
21
- @contract ||= begin
22
- Class.new(base_contract, &Proc.new)
23
- end
24
- end
25
-
26
- def self.parameters(params)
27
- raise 'You must define a contract first' if @contract.nil?
28
-
29
- context = params.fetch(:context, {})
30
- Parameters.new(
31
- context,
32
- contract.new(context).call(params)
33
- )
34
- end
35
-
36
- def initialize(params)
37
- @params = params
38
- end
39
-
40
- def result
41
- raise NotImplementedError
42
- end
43
-
44
- private
45
-
46
- DEFAULT_FAILURE_TYPE = 'error'
47
-
48
- def fail_with_error_message(message, failure_type = DEFAULT_FAILURE_TYPE)
49
- new_errors = Errors.new(nil, failure_type)
50
- new_errors.add(:base, message)
51
- Dry::Monads::Failure(new_errors)
52
- end
53
-
54
- def result_of_validating_params
55
- @params.to_monad
56
- end
57
-
58
- def context(key)
59
- @params.context(key)
60
- end
61
- end
62
- end
63
- end
@@ -1,10 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- # THIS FILE IS AUTOGENERATED AND SHOULD NOT BE MANUALLY MODIFIED
5
-
6
- require 'clean_architecture/use_cases/abstract_use_case'
7
- require 'clean_architecture/use_cases/contract'
8
- require 'clean_architecture/use_cases/errors'
9
- require 'clean_architecture/use_cases/form'
10
- require 'clean_architecture/use_cases/parameters'
@@ -1,9 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- module CleanArchitecture
5
- module UseCases
6
- class Contract < Dry::Validation::Contract
7
- end
8
- end
9
- end