rider-kick 0.0.12 → 0.0.14

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +668 -27
  3. data/lib/generators/rider_kick/USAGE +2 -0
  4. data/lib/generators/rider_kick/base_generator.rb +190 -0
  5. data/lib/generators/rider_kick/clean_arch_generator.rb +235 -44
  6. data/lib/generators/rider_kick/clean_arch_generator_engine_spec.rb +359 -0
  7. data/lib/generators/rider_kick/clean_arch_generator_factory_bot_spec.rb +131 -0
  8. data/lib/generators/rider_kick/entity_type_mapping_spec.rb +61 -0
  9. data/lib/generators/rider_kick/errors.rb +42 -0
  10. data/lib/generators/rider_kick/factory_generator.rb +238 -0
  11. data/lib/generators/rider_kick/factory_generator_spec.rb +175 -0
  12. data/lib/generators/rider_kick/repositories_contract_spec.rb +135 -0
  13. data/lib/generators/rider_kick/scaffold_generator.rb +377 -62
  14. data/lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb +159 -0
  15. data/lib/generators/rider_kick/scaffold_generator_conditional_filtering_spec.rb +820 -0
  16. data/lib/generators/rider_kick/scaffold_generator_contracts_spec.rb +96 -0
  17. data/lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb +83 -0
  18. data/lib/generators/rider_kick/scaffold_generator_engine_spec.rb +221 -0
  19. data/lib/generators/rider_kick/scaffold_generator_idempotent_spec.rb +84 -0
  20. data/lib/generators/rider_kick/scaffold_generator_list_spec_format_spec.rb +153 -0
  21. data/lib/generators/rider_kick/scaffold_generator_rspec_spec.rb +347 -0
  22. data/lib/generators/rider_kick/scaffold_generator_success_spec.rb +101 -0
  23. data/lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb +76 -0
  24. data/lib/generators/rider_kick/structure_generator.rb +179 -35
  25. data/lib/generators/rider_kick/structure_generator_comprehensive_spec.rb +598 -0
  26. data/lib/generators/rider_kick/structure_generator_engine_spec.rb +279 -0
  27. data/lib/generators/rider_kick/structure_generator_spec.rb +20 -0
  28. data/lib/generators/rider_kick/structure_generator_success_spec.rb +64 -0
  29. data/lib/generators/rider_kick/structure_generator_unit_spec.rb +2202 -0
  30. data/lib/generators/rider_kick/templates/.rubocop.yml +5 -4
  31. data/lib/generators/rider_kick/templates/config/initializers/version.rb.tt +1 -1
  32. data/lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb +1 -1
  33. data/lib/generators/rider_kick/templates/db/structures/example.yaml.tt +157 -51
  34. data/lib/generators/rider_kick/templates/domains/core/builders/builder.rb.tt +36 -10
  35. data/lib/generators/rider_kick/templates/domains/core/builders/builder_spec.rb.tt +219 -0
  36. data/lib/generators/rider_kick/templates/domains/core/builders/error.rb.tt +2 -2
  37. data/lib/generators/rider_kick/templates/domains/core/builders/pagination.rb.tt +2 -2
  38. data/lib/generators/rider_kick/templates/domains/core/entities/entity.rb.tt +32 -14
  39. data/lib/generators/rider_kick/templates/domains/core/entities/error.rb.tt +1 -1
  40. data/lib/generators/rider_kick/templates/domains/core/entities/pagination.rb.tt +1 -1
  41. data/lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt +4 -16
  42. data/lib/generators/rider_kick/templates/domains/core/repositories/create.rb.tt +2 -2
  43. data/lib/generators/rider_kick/templates/domains/core/repositories/create_spec.rb.tt +78 -0
  44. data/lib/generators/rider_kick/templates/domains/core/repositories/destroy.rb.tt +2 -2
  45. data/lib/generators/rider_kick/templates/domains/core/repositories/destroy_spec.rb.tt +88 -0
  46. data/lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id.rb.tt +3 -3
  47. data/lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id_spec.rb.tt +62 -0
  48. data/lib/generators/rider_kick/templates/domains/core/repositories/list.rb.tt +12 -7
  49. data/lib/generators/rider_kick/templates/domains/core/repositories/list_spec.rb.tt +190 -0
  50. data/lib/generators/rider_kick/templates/domains/core/repositories/update.rb.tt +4 -4
  51. data/lib/generators/rider_kick/templates/domains/core/repositories/update_spec.rb.tt +119 -0
  52. data/lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt +1 -1
  53. data/lib/generators/rider_kick/templates/domains/core/use_cases/contract/pagination.rb.tt +1 -1
  54. data/lib/generators/rider_kick/templates/domains/core/use_cases/create.rb.tt +3 -7
  55. data/lib/generators/rider_kick/templates/domains/core/use_cases/create_spec.rb.tt +71 -0
  56. data/lib/generators/rider_kick/templates/domains/core/use_cases/destroy.rb.tt +3 -7
  57. data/lib/generators/rider_kick/templates/domains/core/use_cases/destroy_spec.rb.tt +62 -0
  58. data/lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id.rb.tt +3 -7
  59. data/lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id_spec.rb.tt +62 -0
  60. data/lib/generators/rider_kick/templates/domains/core/use_cases/get_version.rb.tt +2 -2
  61. data/lib/generators/rider_kick/templates/domains/core/use_cases/list.rb.tt +3 -7
  62. data/lib/generators/rider_kick/templates/domains/core/use_cases/list_spec.rb.tt +64 -0
  63. data/lib/generators/rider_kick/templates/domains/core/use_cases/update.rb.tt +3 -7
  64. data/lib/generators/rider_kick/templates/domains/core/use_cases/update_spec.rb.tt +73 -0
  65. data/lib/generators/rider_kick/templates/domains/core/utils/abstract_utils.rb.tt +29 -0
  66. data/lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt +3 -2
  67. data/lib/generators/rider_kick/templates/env.development +1 -1
  68. data/lib/generators/rider_kick/templates/env.production +1 -1
  69. data/lib/generators/rider_kick/templates/env.test +1 -1
  70. data/lib/generators/rider_kick/templates/models/{application_record.rb → application_record.rb.tt} +3 -1
  71. data/lib/generators/rider_kick/templates/models/model_spec.rb.tt +68 -0
  72. data/lib/generators/rider_kick/templates/spec/factories/.gitkeep +19 -0
  73. data/lib/generators/rider_kick/templates/spec/factories/factory.rb.tt +8 -0
  74. data/lib/generators/rider_kick/templates/spec/rails_helper.rb +2 -0
  75. data/lib/generators/rider_kick/templates/spec/support/class_stubber.rb +148 -0
  76. data/lib/generators/rider_kick/templates/spec/support/factory_bot.rb +34 -0
  77. data/lib/generators/rider_kick/templates/spec/support/faker.rb +61 -0
  78. data/lib/rider-kick.rb +9 -6
  79. data/lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb +596 -68
  80. data/lib/rider_kick/configuration.rb +238 -0
  81. data/lib/rider_kick/configuration_engine_spec.rb +377 -0
  82. data/lib/rider_kick/entities/failure_details.rb +23 -15
  83. data/lib/rider_kick/entities/failure_details_spec.rb +22 -0
  84. data/lib/rider_kick/matchers/use_case_result.rb +1 -1
  85. data/lib/rider_kick/matchers/use_case_result_edge_spec.rb +28 -0
  86. data/lib/rider_kick/use_cases/abstract_use_case.rb +1 -1
  87. data/lib/rider_kick/use_cases/abstract_use_case_spec.rb +57 -0
  88. data/lib/rider_kick/version.rb +1 -1
  89. metadata +345 -52
  90. data/.rspec +0 -3
  91. data/.rubocop.yml +0 -1141
  92. data/CHANGELOG.md +0 -5
  93. data/Rakefile +0 -12
  94. data/lib/rider_kick/matchers/use_case_result_spec.rb +0 -64
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rider_kick/matchers/use_case_result'
4
+ require 'dry/monads'
5
+
6
+ RSpec.describe RiderKick::Matchers::UseCaseResult do
7
+ subject(:matcher) { described_class }
8
+
9
+ it 'melempar error untuk Failure value yang tidak didukung' do
10
+ weird = Object.new
11
+ expect {
12
+ matcher.call(Dry::Monads::Failure(weird)) { |m| m.failure { |_| :ok } }
13
+ }.to raise_error(ArgumentError, /Unexpected failure value/)
14
+ end
15
+
16
+ it 'meneruskan Entities::FailureDetails apa adanya' do
17
+ fd = RiderKick::Entities::FailureDetails.new(message: 'boom')
18
+ out = nil
19
+
20
+ RiderKick::Matchers::UseCaseResult.call(Dry::Monads::Failure(fd)) do |m|
21
+ m.success { |_| raise 'unexpected success' } # <- tambahkan handler success
22
+ m.failure { |v| out = v }
23
+ end
24
+
25
+ expect(out).to be_a(RiderKick::Entities::FailureDetails)
26
+ expect(out.message).to eq('boom')
27
+ end
28
+ end
@@ -4,7 +4,7 @@
4
4
  require 'dry/monads/result'
5
5
  require 'dry/validation'
6
6
  require 'dry/matcher/result_matcher'
7
- require 'rider_kick/use_cases/contract'
7
+ require_relative 'contract'
8
8
 
9
9
  module RiderKick
10
10
  module UseCases
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'dry/validation'
4
+ require 'rider_kick/use_cases/abstract_use_case'
5
+
6
+ RSpec.describe RiderKick::UseCases::AbstractUseCase do
7
+ # Use case dummy untuk menguji .contract, .contract! dan build_parameter!
8
+ class DummyUseCase < RiderKick::UseCases::AbstractUseCase
9
+ contract do
10
+ params do
11
+ required(:name).filled(:string)
12
+ optional(:age).maybe(:integer)
13
+ end
14
+ end
15
+
16
+ include Dry::Monads::Do.for(:result)
17
+ def result
18
+ params = yield build_parameter!
19
+ Success(params)
20
+ end
21
+ end
22
+
23
+ describe '.contract/.contract!' do
24
+ it 'membangun dan menjalankan contract' do
25
+ contract = DummyUseCase.contract!(name: 'Kotaro')
26
+ expect(contract).to be_success
27
+ end
28
+ end
29
+
30
+ describe '#build_parameter!' do
31
+ it 'mengembalikan Success(Hashie::Mash) ketika valid' do
32
+ contract = DummyUseCase.contract!(name: 'Kotaro', age: 7)
33
+ use_case = DummyUseCase.new(contract)
34
+ result = use_case.build_parameter!
35
+ expect(result).to be_a(Dry::Monads::Success)
36
+ expect(result.value!).to respond_to(:name)
37
+ expect(result.value!.name).to eq('Kotaro')
38
+ end
39
+
40
+ it 'mengembalikan Failure(hash error) ketika tidak valid' do
41
+ contract = DummyUseCase.contract!(age: 'tujuh')
42
+ result = DummyUseCase.new(contract).build_parameter!
43
+ expect(result).to be_a(Dry::Monads::Failure)
44
+ expect(result.failure).to be_a(Hash)
45
+ expect(result.failure.keys).to include(:name) # name wajib
46
+ end
47
+ end
48
+
49
+ describe '#result' do
50
+ it 'menggunakan Do-notation dengan mulus' do
51
+ contract = DummyUseCase.contract!(name: 'Alam')
52
+ res = DummyUseCase.new(contract).result
53
+ expect(res).to be_success
54
+ expect(res.value!.name).to eq('Alam')
55
+ end
56
+ end
57
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RiderKick
4
- VERSION = '0.0.12'
4
+ VERSION = '0.0.14'
5
5
  public_constant :VERSION
6
6
  end
metadata CHANGED
@@ -1,157 +1,414 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rider-kick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kotaro Minami
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-05-22 00:00:00.000000000 Z
10
+ date: 2025-12-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: activesupport
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.0'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.0'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
12
32
  - !ruby/object:Gem::Dependency
13
33
  name: dry-matcher
14
34
  requirement: !ruby/object:Gem::Requirement
15
35
  requirements:
16
- - - "~>"
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '1.0'
39
+ - - "<"
17
40
  - !ruby/object:Gem::Version
18
- version: 1.0.0
41
+ version: '2.0'
19
42
  type: :runtime
20
43
  prerelease: false
21
44
  version_requirements: !ruby/object:Gem::Requirement
22
45
  requirements:
23
- - - "~>"
46
+ - - ">="
24
47
  - !ruby/object:Gem::Version
25
- version: 1.0.0
48
+ version: '1.0'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '2.0'
26
52
  - !ruby/object:Gem::Dependency
27
53
  name: dry-monads
28
54
  requirement: !ruby/object:Gem::Requirement
29
55
  requirements:
30
- - - "~>"
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '1.6'
59
+ - - "<"
31
60
  - !ruby/object:Gem::Version
32
- version: 1.6.0
61
+ version: '2.0'
33
62
  type: :runtime
34
63
  prerelease: false
35
64
  version_requirements: !ruby/object:Gem::Requirement
36
65
  requirements:
37
- - - "~>"
66
+ - - ">="
38
67
  - !ruby/object:Gem::Version
39
- version: 1.6.0
68
+ version: '1.6'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '2.0'
40
72
  - !ruby/object:Gem::Dependency
41
73
  name: dry-struct
42
74
  requirement: !ruby/object:Gem::Requirement
43
75
  requirements:
44
- - - "~>"
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '1.6'
79
+ - - "<"
45
80
  - !ruby/object:Gem::Version
46
- version: 1.6.0
81
+ version: '2.0'
47
82
  type: :runtime
48
83
  prerelease: false
49
84
  version_requirements: !ruby/object:Gem::Requirement
50
85
  requirements:
51
- - - "~>"
86
+ - - ">="
52
87
  - !ruby/object:Gem::Version
53
- version: 1.6.0
88
+ version: '1.6'
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '2.0'
54
92
  - !ruby/object:Gem::Dependency
55
- name: dry-transaction
93
+ name: dry-types
56
94
  requirement: !ruby/object:Gem::Requirement
57
95
  requirements:
58
- - - "~>"
96
+ - - ">="
59
97
  - !ruby/object:Gem::Version
60
- version: 0.16.0
98
+ version: '1.7'
99
+ - - "<"
100
+ - !ruby/object:Gem::Version
101
+ version: '2.0'
61
102
  type: :runtime
62
103
  prerelease: false
63
104
  version_requirements: !ruby/object:Gem::Requirement
64
105
  requirements:
65
- - - "~>"
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '1.7'
109
+ - - "<"
66
110
  - !ruby/object:Gem::Version
67
- version: 0.16.0
111
+ version: '2.0'
68
112
  - !ruby/object:Gem::Dependency
69
- name: dry-types
113
+ name: dry-validation
70
114
  requirement: !ruby/object:Gem::Requirement
71
115
  requirements:
72
- - - "~>"
116
+ - - ">="
73
117
  - !ruby/object:Gem::Version
74
- version: 1.7.2
118
+ version: '1.9'
119
+ - - "<"
120
+ - !ruby/object:Gem::Version
121
+ version: '2.0'
75
122
  type: :runtime
76
123
  prerelease: false
77
124
  version_requirements: !ruby/object:Gem::Requirement
78
125
  requirements:
79
- - - "~>"
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '1.9'
129
+ - - "<"
80
130
  - !ruby/object:Gem::Version
81
- version: 1.7.2
131
+ version: '2.0'
82
132
  - !ruby/object:Gem::Dependency
83
- name: dry-validation
133
+ name: hashie
84
134
  requirement: !ruby/object:Gem::Requirement
85
135
  requirements:
86
- - - "~>"
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '5.0'
139
+ - - "<"
87
140
  - !ruby/object:Gem::Version
88
- version: 1.10.0
141
+ version: '6.0'
89
142
  type: :runtime
90
143
  prerelease: false
91
144
  version_requirements: !ruby/object:Gem::Requirement
92
145
  requirements:
93
- - - "~>"
146
+ - - ">="
94
147
  - !ruby/object:Gem::Version
95
- version: 1.10.0
148
+ version: '5.0'
149
+ - - "<"
150
+ - !ruby/object:Gem::Version
151
+ version: '6.0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: thor
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '1.2'
159
+ - - "<"
160
+ - !ruby/object:Gem::Version
161
+ version: '2.0'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '1.2'
169
+ - - "<"
170
+ - !ruby/object:Gem::Version
171
+ version: '2.0'
96
172
  - !ruby/object:Gem::Dependency
97
173
  name: bundler
98
174
  requirement: !ruby/object:Gem::Requirement
99
175
  requirements:
100
- - - "~>"
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '2.4'
179
+ - - "<"
180
+ - !ruby/object:Gem::Version
181
+ version: '3.0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '2.4'
189
+ - - "<"
190
+ - !ruby/object:Gem::Version
191
+ version: '3.0'
192
+ - !ruby/object:Gem::Dependency
193
+ name: generator_spec
194
+ requirement: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0.9'
199
+ - - "<"
101
200
  - !ruby/object:Gem::Version
102
- version: 2.5.18
201
+ version: '1.0'
103
202
  type: :development
104
203
  prerelease: false
105
204
  version_requirements: !ruby/object:Gem::Requirement
106
205
  requirements:
107
- - - "~>"
206
+ - - ">="
108
207
  - !ruby/object:Gem::Version
109
- version: 2.5.18
208
+ version: '0.9'
209
+ - - "<"
210
+ - !ruby/object:Gem::Version
211
+ version: '1.0'
110
212
  - !ruby/object:Gem::Dependency
111
213
  name: rake
112
214
  requirement: !ruby/object:Gem::Requirement
113
215
  requirements:
114
- - - "~>"
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: '13.0'
219
+ - - "<"
115
220
  - !ruby/object:Gem::Version
116
- version: 13.2.1
221
+ version: '14.0'
117
222
  type: :development
118
223
  prerelease: false
119
224
  version_requirements: !ruby/object:Gem::Requirement
120
225
  requirements:
121
- - - "~>"
226
+ - - ">="
122
227
  - !ruby/object:Gem::Version
123
- version: 13.2.1
228
+ version: '13.0'
229
+ - - "<"
230
+ - !ruby/object:Gem::Version
231
+ version: '14.0'
124
232
  - !ruby/object:Gem::Dependency
125
233
  name: rspec
126
234
  requirement: !ruby/object:Gem::Requirement
127
235
  requirements:
128
- - - "~>"
236
+ - - ">="
237
+ - !ruby/object:Gem::Version
238
+ version: '3.12'
239
+ - - "<"
129
240
  - !ruby/object:Gem::Version
130
- version: 3.13.0
241
+ version: '4.0'
131
242
  type: :development
132
243
  prerelease: false
133
244
  version_requirements: !ruby/object:Gem::Requirement
134
245
  requirements:
135
- - - "~>"
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '3.12'
249
+ - - "<"
250
+ - !ruby/object:Gem::Version
251
+ version: '4.0'
252
+ - !ruby/object:Gem::Dependency
253
+ name: rubocop
254
+ requirement: !ruby/object:Gem::Requirement
255
+ requirements:
256
+ - - ">="
257
+ - !ruby/object:Gem::Version
258
+ version: '1.63'
259
+ - - "<"
260
+ - !ruby/object:Gem::Version
261
+ version: '2.0'
262
+ type: :development
263
+ prerelease: false
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ requirements:
266
+ - - ">="
267
+ - !ruby/object:Gem::Version
268
+ version: '1.63'
269
+ - - "<"
270
+ - !ruby/object:Gem::Version
271
+ version: '2.0'
272
+ - !ruby/object:Gem::Dependency
273
+ name: rubocop-performance
274
+ requirement: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '1.0'
279
+ - - "<"
280
+ - !ruby/object:Gem::Version
281
+ version: '2.0'
282
+ type: :development
283
+ prerelease: false
284
+ version_requirements: !ruby/object:Gem::Requirement
285
+ requirements:
286
+ - - ">="
287
+ - !ruby/object:Gem::Version
288
+ version: '1.0'
289
+ - - "<"
290
+ - !ruby/object:Gem::Version
291
+ version: '2.0'
292
+ - !ruby/object:Gem::Dependency
293
+ name: rubocop-rails-omakase
294
+ requirement: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '1.0'
299
+ - - "<"
300
+ - !ruby/object:Gem::Version
301
+ version: '2.0'
302
+ type: :development
303
+ prerelease: false
304
+ version_requirements: !ruby/object:Gem::Requirement
305
+ requirements:
306
+ - - ">="
307
+ - !ruby/object:Gem::Version
308
+ version: '1.0'
309
+ - - "<"
310
+ - !ruby/object:Gem::Version
311
+ version: '2.0'
312
+ - !ruby/object:Gem::Dependency
313
+ name: rubocop-rspec
314
+ requirement: !ruby/object:Gem::Requirement
315
+ requirements:
316
+ - - ">="
317
+ - !ruby/object:Gem::Version
318
+ version: '3.0'
319
+ - - "<"
320
+ - !ruby/object:Gem::Version
321
+ version: '4.0'
322
+ type: :development
323
+ prerelease: false
324
+ version_requirements: !ruby/object:Gem::Requirement
325
+ requirements:
326
+ - - ">="
327
+ - !ruby/object:Gem::Version
328
+ version: '3.0'
329
+ - - "<"
330
+ - !ruby/object:Gem::Version
331
+ version: '4.0'
332
+ - !ruby/object:Gem::Dependency
333
+ name: faker
334
+ requirement: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - ">="
337
+ - !ruby/object:Gem::Version
338
+ version: '3.0'
339
+ - - "<"
340
+ - !ruby/object:Gem::Version
341
+ version: '4.0'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ version: '3.0'
349
+ - - "<"
350
+ - !ruby/object:Gem::Version
351
+ version: '4.0'
352
+ - !ruby/object:Gem::Dependency
353
+ name: debug
354
+ requirement: !ruby/object:Gem::Requirement
355
+ requirements:
356
+ - - ">="
357
+ - !ruby/object:Gem::Version
358
+ version: '1.0'
359
+ - - "<"
360
+ - !ruby/object:Gem::Version
361
+ version: '2.0'
362
+ type: :development
363
+ prerelease: false
364
+ version_requirements: !ruby/object:Gem::Requirement
365
+ requirements:
366
+ - - ">="
367
+ - !ruby/object:Gem::Version
368
+ version: '1.0'
369
+ - - "<"
136
370
  - !ruby/object:Gem::Version
137
- version: 3.13.0
138
- description: An attempt at building a reusable Clean Architecture framework for Ruby.
371
+ version: '2.0'
372
+ description: "Rider Kick: opinionated generator to scaffold Clean Architecture \n(entities,
373
+ use-cases, adapters) with Rails-friendly ergonomics.\n\nFeatures:\n- Clean Architecture
374
+ scaffolding with domain scoping\n- Use-case-first \"screaming architecture\"\n-
375
+ Automatic RSpec generation\n- FactoryBot factory generator with smart Faker\n- Rails
376
+ engine support\n- Idempotent and safe to run multiple times\n"
139
377
  email:
140
378
  - kotaroisme@gmail.com
141
379
  executables: []
142
380
  extensions: []
143
381
  extra_rdoc_files: []
144
382
  files:
145
- - ".rspec"
146
- - ".rubocop.yml"
147
- - CHANGELOG.md
148
383
  - LICENSE.txt
149
384
  - README.md
150
- - Rakefile
151
385
  - lib/generators/rider_kick/USAGE
386
+ - lib/generators/rider_kick/base_generator.rb
152
387
  - lib/generators/rider_kick/clean_arch_generator.rb
388
+ - lib/generators/rider_kick/clean_arch_generator_engine_spec.rb
389
+ - lib/generators/rider_kick/clean_arch_generator_factory_bot_spec.rb
390
+ - lib/generators/rider_kick/entity_type_mapping_spec.rb
391
+ - lib/generators/rider_kick/errors.rb
392
+ - lib/generators/rider_kick/factory_generator.rb
393
+ - lib/generators/rider_kick/factory_generator_spec.rb
394
+ - lib/generators/rider_kick/repositories_contract_spec.rb
153
395
  - lib/generators/rider_kick/scaffold_generator.rb
396
+ - lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb
397
+ - lib/generators/rider_kick/scaffold_generator_conditional_filtering_spec.rb
398
+ - lib/generators/rider_kick/scaffold_generator_contracts_spec.rb
399
+ - lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb
400
+ - lib/generators/rider_kick/scaffold_generator_engine_spec.rb
401
+ - lib/generators/rider_kick/scaffold_generator_idempotent_spec.rb
402
+ - lib/generators/rider_kick/scaffold_generator_list_spec_format_spec.rb
403
+ - lib/generators/rider_kick/scaffold_generator_rspec_spec.rb
404
+ - lib/generators/rider_kick/scaffold_generator_success_spec.rb
405
+ - lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb
154
406
  - lib/generators/rider_kick/structure_generator.rb
407
+ - lib/generators/rider_kick/structure_generator_comprehensive_spec.rb
408
+ - lib/generators/rider_kick/structure_generator_engine_spec.rb
409
+ - lib/generators/rider_kick/structure_generator_spec.rb
410
+ - lib/generators/rider_kick/structure_generator_success_spec.rb
411
+ - lib/generators/rider_kick/structure_generator_unit_spec.rb
155
412
  - lib/generators/rider_kick/templates/.gitignore
156
413
  - lib/generators/rider_kick/templates/.rspec
157
414
  - lib/generators/rider_kick/templates/.rubocop.yml
@@ -167,6 +424,7 @@ files:
167
424
  - lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb
168
425
  - lib/generators/rider_kick/templates/db/structures/example.yaml.tt
169
426
  - lib/generators/rider_kick/templates/domains/core/builders/builder.rb.tt
427
+ - lib/generators/rider_kick/templates/domains/core/builders/builder_spec.rb.tt
170
428
  - lib/generators/rider_kick/templates/domains/core/builders/error.rb.tt
171
429
  - lib/generators/rider_kick/templates/domains/core/builders/pagination.rb.tt
172
430
  - lib/generators/rider_kick/templates/domains/core/entities/entity.rb.tt
@@ -174,42 +432,77 @@ files:
174
432
  - lib/generators/rider_kick/templates/domains/core/entities/pagination.rb.tt
175
433
  - lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt
176
434
  - lib/generators/rider_kick/templates/domains/core/repositories/create.rb.tt
435
+ - lib/generators/rider_kick/templates/domains/core/repositories/create_spec.rb.tt
177
436
  - lib/generators/rider_kick/templates/domains/core/repositories/destroy.rb.tt
437
+ - lib/generators/rider_kick/templates/domains/core/repositories/destroy_spec.rb.tt
178
438
  - lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id.rb.tt
439
+ - lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id_spec.rb.tt
179
440
  - lib/generators/rider_kick/templates/domains/core/repositories/list.rb.tt
441
+ - lib/generators/rider_kick/templates/domains/core/repositories/list_spec.rb.tt
180
442
  - lib/generators/rider_kick/templates/domains/core/repositories/update.rb.tt
443
+ - lib/generators/rider_kick/templates/domains/core/repositories/update_spec.rb.tt
181
444
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt
182
445
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/pagination.rb.tt
183
446
  - lib/generators/rider_kick/templates/domains/core/use_cases/create.rb.tt
447
+ - lib/generators/rider_kick/templates/domains/core/use_cases/create_spec.rb.tt
184
448
  - lib/generators/rider_kick/templates/domains/core/use_cases/destroy.rb.tt
449
+ - lib/generators/rider_kick/templates/domains/core/use_cases/destroy_spec.rb.tt
185
450
  - lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id.rb.tt
451
+ - lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id_spec.rb.tt
186
452
  - lib/generators/rider_kick/templates/domains/core/use_cases/get_version.rb.tt
187
453
  - lib/generators/rider_kick/templates/domains/core/use_cases/list.rb.tt
454
+ - lib/generators/rider_kick/templates/domains/core/use_cases/list_spec.rb.tt
188
455
  - lib/generators/rider_kick/templates/domains/core/use_cases/update.rb.tt
456
+ - lib/generators/rider_kick/templates/domains/core/use_cases/update_spec.rb.tt
457
+ - lib/generators/rider_kick/templates/domains/core/utils/abstract_utils.rb.tt
189
458
  - lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt
190
459
  - lib/generators/rider_kick/templates/env.development
191
460
  - lib/generators/rider_kick/templates/env.production
192
461
  - lib/generators/rider_kick/templates/env.test
193
- - lib/generators/rider_kick/templates/models/application_record.rb
462
+ - lib/generators/rider_kick/templates/models/application_record.rb.tt
463
+ - lib/generators/rider_kick/templates/models/model_spec.rb.tt
194
464
  - lib/generators/rider_kick/templates/models/models.rb
465
+ - lib/generators/rider_kick/templates/spec/factories/.gitkeep
466
+ - lib/generators/rider_kick/templates/spec/factories/factory.rb.tt
195
467
  - lib/generators/rider_kick/templates/spec/fixtures/sample.pdf
196
468
  - lib/generators/rider_kick/templates/spec/rails_helper.rb
469
+ - lib/generators/rider_kick/templates/spec/support/class_stubber.rb
470
+ - lib/generators/rider_kick/templates/spec/support/factory_bot.rb
471
+ - lib/generators/rider_kick/templates/spec/support/faker.rb
197
472
  - lib/generators/rider_kick/templates/spec/support/file_stuber.rb
198
473
  - lib/generators/rider_kick/templates/spec/support/repository_stubber.rb
199
474
  - lib/rider-kick.rb
200
475
  - lib/rider_kick/builders/abstract_active_record_entity_builder.rb
201
476
  - lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb
477
+ - lib/rider_kick/configuration.rb
478
+ - lib/rider_kick/configuration_engine_spec.rb
202
479
  - lib/rider_kick/entities/failure_details.rb
480
+ - lib/rider_kick/entities/failure_details_spec.rb
203
481
  - lib/rider_kick/matchers/use_case_result.rb
204
- - lib/rider_kick/matchers/use_case_result_spec.rb
482
+ - lib/rider_kick/matchers/use_case_result_edge_spec.rb
205
483
  - lib/rider_kick/types.rb
206
484
  - lib/rider_kick/use_cases/abstract_use_case.rb
485
+ - lib/rider_kick/use_cases/abstract_use_case_spec.rb
207
486
  - lib/rider_kick/use_cases/contract.rb
208
487
  - lib/rider_kick/version.rb
209
488
  homepage: https://github.com/kotaroisme/rider-kick
210
489
  licenses:
211
490
  - MIT
212
- metadata: {}
491
+ metadata:
492
+ homepage_uri: https://github.com/kotaroisme/rider-kick
493
+ changelog_uri: https://github.com/kotaroisme/rider-kick/blob/main/CHANGELOG.md
494
+ bug_tracker_uri: https://github.com/kotaroisme/rider-kick/issues
495
+ source_code_uri: https://github.com/kotaroisme/rider-kick
496
+ documentation_uri: https://github.com/kotaroisme/rider-kick#readme
497
+ rubygems_mfa_required: 'true'
498
+ post_install_message: |
499
+ Thanks for installing rider-kick ⚡️
500
+
501
+ Quick start:
502
+ rails generate rider_kick:clean_arch --setup
503
+
504
+ Documentation: https://github.com/kotaroisme/rider-kick
505
+ PSA: Run `bundle exec rspec` to verify your generators and contracts.
213
506
  rdoc_options: []
214
507
  require_paths:
215
508
  - lib
@@ -217,14 +510,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
510
  requirements:
218
511
  - - ">="
219
512
  - !ruby/object:Gem::Version
220
- version: 3.0.0
513
+ version: '3.2'
221
514
  required_rubygems_version: !ruby/object:Gem::Requirement
222
515
  requirements:
223
516
  - - ">="
224
517
  - !ruby/object:Gem::Version
225
518
  version: '0'
226
519
  requirements: []
227
- rubygems_version: 3.6.3
520
+ rubygems_version: 3.6.2
228
521
  specification_version: 4
229
- summary: Clean Architecture Framework.
522
+ summary: Clean Architecture generator for Ruby/Rails apps.
230
523
  test_files: []
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper