senro_usecaser 0.1.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.
@@ -0,0 +1,279 @@
1
+ # Generated from namespace_demo.rb with RBS::Inline
2
+
3
+ # サンプル全体を NamespaceDemo モジュールで囲み、
4
+ # 他のサンプル(order_system.rb)とのクラス名衝突を回避
5
+ module NamespaceDemo
6
+ class User
7
+ # : Integer
8
+ attr_reader id: untyped
9
+
10
+ # : String
11
+ attr_reader name: untyped
12
+
13
+ # : String
14
+ attr_reader role: untyped
15
+
16
+ # : (id: Integer, name: String, role: String) -> void
17
+ def initialize: (id: Integer, name: String, role: String) -> void
18
+ end
19
+
20
+ class AuditLog
21
+ # : String
22
+ attr_reader action: untyped
23
+
24
+ # : User
25
+ attr_reader performed_by: untyped
26
+
27
+ # : Time
28
+ attr_reader timestamp: untyped
29
+
30
+ # : (action: String, performed_by: User, timestamp: Time) -> void
31
+ def initialize: (action: String, performed_by: User, timestamp: Time) -> void
32
+ end
33
+
34
+ # 全 namespace で共有されるロガー
35
+ class Logger
36
+ # : String
37
+ attr_reader prefix: untyped
38
+
39
+ # : (?String) -> void
40
+ def initialize: (?String) -> void
41
+
42
+ # : (String) -> void
43
+ def info: (String) -> void
44
+ end
45
+
46
+ module Public
47
+ class UserRepository
48
+ # : () -> void
49
+ def initialize: () -> void
50
+
51
+ # : (Integer) -> User?
52
+ def find: (Integer) -> User?
53
+
54
+ # : () -> Array[User]
55
+ def all: () -> Array[User]
56
+ end
57
+
58
+ class NotificationService
59
+ # : (User, String) -> bool
60
+ def notify: (User, String) -> bool
61
+ end
62
+ end
63
+
64
+ module Admin
65
+ class UserRepository
66
+ # : () -> void
67
+ def initialize: () -> void
68
+
69
+ # : (Integer) -> User?
70
+ def find: (Integer) -> User?
71
+
72
+ # : () -> Array[User]
73
+ def all: () -> Array[User]
74
+
75
+ # Admin 専用: ユーザーの全情報を取得
76
+ # : (Integer) -> Hash[Symbol, untyped]?
77
+ def find_with_permissions: (Integer) -> Hash[Symbol, untyped]?
78
+ end
79
+
80
+ class NotificationService
81
+ # : (User, String) -> bool
82
+ def notify: (User, String) -> bool
83
+ end
84
+
85
+ class AuditLogger
86
+ # : () -> void
87
+ def initialize: () -> void
88
+
89
+ # : (action: String, performed_by: User) -> AuditLog
90
+ def log: (action: String, performed_by: User) -> AuditLog
91
+
92
+ # : () -> Array[AuditLog]
93
+ def recent_logs: () -> Array[AuditLog]
94
+ end
95
+ end
96
+
97
+ module Admin
98
+ module Reports
99
+ class ReportGenerator
100
+ # : (String, Hash[Symbol, untyped]) -> String
101
+ def generate: (String, Hash[Symbol, untyped]) -> String
102
+ end
103
+
104
+ class ReportExporter
105
+ # : (String, Symbol) -> String
106
+ def export: (String, Symbol) -> String
107
+ end
108
+ end
109
+ end
110
+
111
+ # 共有サービス(ルート namespace)
112
+ class CoreProvider < SenroUsecaser::Provider
113
+ # : (SenroUsecaser::Container) -> void
114
+ def register: (SenroUsecaser::Container) -> void
115
+ end
116
+
117
+ # Public namespace のサービス(namespace DSL 使用)
118
+ class PublicProvider < SenroUsecaser::Provider
119
+ # : (SenroUsecaser::Container) -> void
120
+ def register: (SenroUsecaser::Container) -> void
121
+ end
122
+
123
+ # Admin namespace のサービス(Container.namespace 直接使用)
124
+ class AdminProvider < SenroUsecaser::Provider
125
+ # : (SenroUsecaser::Container) -> void
126
+ def register: (SenroUsecaser::Container) -> void
127
+
128
+ # : (SenroUsecaser::Container) -> void
129
+ def after_boot: (SenroUsecaser::Container) -> void
130
+ end
131
+
132
+ # Admin::Reports namespace のサービス(Container.namespace ネスト使用)
133
+ class AdminReportsProvider < SenroUsecaser::Provider
134
+ # : (SenroUsecaser::Container) -> void
135
+ def register: (SenroUsecaser::Container) -> void
136
+ end
137
+
138
+ # Public namespace の UseCase
139
+ class ListPublicUsersUseCase < SenroUsecaser::Base
140
+ class Output
141
+ # : (users: Array[User]) -> void
142
+ def initialize: (users: Array[User]) -> void
143
+
144
+ # : () -> Array[User]
145
+ attr_reader users: untyped
146
+ end
147
+
148
+ def user_repository: () -> Public::UserRepository
149
+
150
+ def logger: () -> Logger
151
+
152
+ # : (?untyped, **untyped) -> SenroUsecaser::Result[Output]
153
+ def call: (?untyped, **untyped) -> SenroUsecaser::Result[Output]
154
+ end
155
+
156
+ # Admin namespace の UseCase
157
+ class ListAdminUsersUseCase < SenroUsecaser::Base
158
+ class Output
159
+ # : (users: Array[User]) -> void
160
+ def initialize: (users: Array[User]) -> void
161
+
162
+ # : () -> Array[User]
163
+ attr_reader users: untyped
164
+ end
165
+
166
+ def user_repository: () -> Admin::UserRepository
167
+
168
+ def audit_logger: () -> Admin::AuditLogger
169
+
170
+ def logger: () -> Logger
171
+
172
+ # : (?untyped, **untyped) -> SenroUsecaser::Result[Output]
173
+ def call: (?untyped, **untyped) -> SenroUsecaser::Result[Output]
174
+ end
175
+
176
+ # Admin::Reports namespace の UseCase(ネストした namespace)
177
+ class GenerateUserReportUseCase < SenroUsecaser::Base
178
+ class Input
179
+ # : (report_type: String) -> void
180
+ def initialize: (report_type: String) -> void
181
+
182
+ # : () -> String
183
+ attr_reader report_type: untyped
184
+ end
185
+
186
+ class Output
187
+ # : (report: String) -> void
188
+ def initialize: (report: String) -> void
189
+
190
+ # : () -> String
191
+ attr_reader report: untyped
192
+ end
193
+
194
+ def report_generator: () -> Admin::Reports::ReportGenerator
195
+
196
+ def report_exporter: () -> Admin::Reports::ReportExporter
197
+
198
+ def user_repository: () -> Admin::UserRepository
199
+
200
+ def audit_logger: () -> Admin::AuditLogger
201
+
202
+ def logger: () -> Logger
203
+
204
+ # : (Input) -> SenroUsecaser::Result[Output]
205
+ def call: (Input) -> SenroUsecaser::Result[Output]
206
+ end
207
+
208
+ # リクエストスコープで current_user を注入しつつ、namespace を活用
209
+ class AdminActionUseCase < SenroUsecaser::Base
210
+ class Output
211
+ # : (message: String) -> void
212
+ def initialize: (message: String) -> void
213
+
214
+ # : () -> String
215
+ attr_reader message: untyped
216
+ end
217
+
218
+ def current_user: () -> User
219
+
220
+ def audit_logger: () -> Admin::AuditLogger
221
+
222
+ def notification_service: () -> Admin::NotificationService
223
+
224
+ # : (?untyped, **untyped) -> SenroUsecaser::Result[Output]
225
+ def call: (?untyped, **untyped) -> SenroUsecaser::Result[Output]
226
+ end
227
+ end
228
+
229
+ # Public::InferredUseCase → namespace "public" として推論
230
+ module Public
231
+ class InferredUseCase < SenroUsecaser::Base
232
+ class Output
233
+ # : (message: String) -> void
234
+ def initialize: (message: String) -> void
235
+
236
+ # : () -> String
237
+ attr_reader message: untyped
238
+ end
239
+
240
+ def user_repository: () -> NamespaceDemo::Public::UserRepository
241
+
242
+ def logger: () -> NamespaceDemo::Logger
243
+
244
+ # : (?untyped, **untyped) -> SenroUsecaser::Result[Output]
245
+ def call: (?untyped, **untyped) -> SenroUsecaser::Result[Output]
246
+ end
247
+ end
248
+
249
+ # Admin::Reports::InferredReportUseCase → namespace "admin::reports" として推論
250
+ module Admin
251
+ module Reports
252
+ class InferredReportUseCase < SenroUsecaser::Base
253
+ class Output
254
+ # : (message: String) -> void
255
+ def initialize: (message: String) -> void
256
+
257
+ # : () -> String
258
+ attr_reader message: untyped
259
+ end
260
+
261
+ def report_generator: () -> NamespaceDemo::Admin::Reports::ReportGenerator
262
+
263
+ def user_repository: () -> NamespaceDemo::Admin::UserRepository
264
+
265
+ def logger: () -> NamespaceDemo::Logger
266
+
267
+ # : (?untyped, **untyped) -> SenroUsecaser::Result[Output]
268
+ def call: (?untyped, **untyped) -> SenroUsecaser::Result[Output]
269
+ end
270
+ end
271
+ end
272
+
273
+ # Inferred::ServiceProvider → namespace "inferred" として推論
274
+ module Inferred
275
+ class ServiceProvider < SenroUsecaser::Provider
276
+ # : (SenroUsecaser::Container) -> void
277
+ def register: (SenroUsecaser::Container) -> void
278
+ end
279
+ end