rider-kick 0.0.13 → 0.0.15

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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +629 -25
  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 +236 -45
  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 +22 -13
  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/init_generator.rb +15 -0
  13. data/lib/generators/rider_kick/repositories_contract_spec.rb +95 -22
  14. data/lib/generators/rider_kick/scaffold_generator.rb +381 -64
  15. data/lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb +119 -14
  16. data/lib/generators/rider_kick/scaffold_generator_conditional_filtering_spec.rb +820 -0
  17. data/lib/generators/rider_kick/scaffold_generator_contracts_spec.rb +37 -10
  18. data/lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb +42 -14
  19. data/lib/generators/rider_kick/scaffold_generator_engine_spec.rb +221 -0
  20. data/lib/generators/rider_kick/scaffold_generator_idempotent_spec.rb +38 -13
  21. data/lib/generators/rider_kick/scaffold_generator_list_spec_format_spec.rb +153 -0
  22. data/lib/generators/rider_kick/scaffold_generator_rspec_spec.rb +347 -0
  23. data/lib/generators/rider_kick/scaffold_generator_success_spec.rb +31 -12
  24. data/lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb +33 -12
  25. data/lib/generators/rider_kick/structure_generator.rb +156 -43
  26. data/lib/generators/rider_kick/structure_generator_comprehensive_spec.rb +598 -0
  27. data/lib/generators/rider_kick/structure_generator_engine_spec.rb +279 -0
  28. data/lib/generators/rider_kick/structure_generator_spec.rb +3 -3
  29. data/lib/generators/rider_kick/structure_generator_success_spec.rb +33 -5
  30. data/lib/generators/rider_kick/structure_generator_unit_spec.rb +2202 -0
  31. data/lib/generators/rider_kick/templates/.rubocop.yml +5 -4
  32. data/lib/generators/rider_kick/templates/config/initializers/rider_kick.rb.tt +29 -0
  33. data/lib/generators/rider_kick/templates/config/initializers/version.rb.tt +1 -1
  34. data/lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb +1 -1
  35. data/lib/generators/rider_kick/templates/db/structures/example.yaml.tt +142 -66
  36. data/lib/generators/rider_kick/templates/domains/core/builders/builder.rb.tt +36 -10
  37. data/lib/generators/rider_kick/templates/domains/core/builders/builder_spec.rb.tt +219 -0
  38. data/lib/generators/rider_kick/templates/domains/core/builders/error.rb.tt +2 -2
  39. data/lib/generators/rider_kick/templates/domains/core/builders/pagination.rb.tt +2 -2
  40. data/lib/generators/rider_kick/templates/domains/core/entities/entity.rb.tt +32 -14
  41. data/lib/generators/rider_kick/templates/domains/core/entities/error.rb.tt +1 -1
  42. data/lib/generators/rider_kick/templates/domains/core/entities/pagination.rb.tt +1 -1
  43. data/lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt +4 -4
  44. data/lib/generators/rider_kick/templates/domains/core/repositories/create.rb.tt +2 -2
  45. data/lib/generators/rider_kick/templates/domains/core/repositories/create_spec.rb.tt +78 -0
  46. data/lib/generators/rider_kick/templates/domains/core/repositories/destroy.rb.tt +2 -2
  47. data/lib/generators/rider_kick/templates/domains/core/repositories/destroy_spec.rb.tt +88 -0
  48. data/lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id.rb.tt +3 -3
  49. data/lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id_spec.rb.tt +62 -0
  50. data/lib/generators/rider_kick/templates/domains/core/repositories/list.rb.tt +13 -8
  51. data/lib/generators/rider_kick/templates/domains/core/repositories/list_spec.rb.tt +190 -0
  52. data/lib/generators/rider_kick/templates/domains/core/repositories/update.rb.tt +4 -4
  53. data/lib/generators/rider_kick/templates/domains/core/repositories/update_spec.rb.tt +119 -0
  54. data/lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt +1 -1
  55. data/lib/generators/rider_kick/templates/domains/core/use_cases/contract/pagination.rb.tt +1 -1
  56. data/lib/generators/rider_kick/templates/domains/core/use_cases/create.rb.tt +3 -7
  57. data/lib/generators/rider_kick/templates/domains/core/use_cases/create_spec.rb.tt +71 -0
  58. data/lib/generators/rider_kick/templates/domains/core/use_cases/destroy.rb.tt +3 -7
  59. data/lib/generators/rider_kick/templates/domains/core/use_cases/destroy_spec.rb.tt +62 -0
  60. data/lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id.rb.tt +3 -7
  61. data/lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id_spec.rb.tt +62 -0
  62. data/lib/generators/rider_kick/templates/domains/core/use_cases/get_version.rb.tt +2 -2
  63. data/lib/generators/rider_kick/templates/domains/core/use_cases/list.rb.tt +3 -7
  64. data/lib/generators/rider_kick/templates/domains/core/use_cases/list_spec.rb.tt +64 -0
  65. data/lib/generators/rider_kick/templates/domains/core/use_cases/update.rb.tt +3 -7
  66. data/lib/generators/rider_kick/templates/domains/core/use_cases/update_spec.rb.tt +73 -0
  67. data/lib/generators/rider_kick/templates/domains/core/utils/abstract_utils.rb.tt +3 -3
  68. data/lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt +1 -1
  69. data/lib/generators/rider_kick/templates/env.development +1 -1
  70. data/lib/generators/rider_kick/templates/env.production +1 -1
  71. data/lib/generators/rider_kick/templates/env.test +1 -1
  72. data/lib/generators/rider_kick/templates/models/{application_record.rb → application_record.rb.tt} +3 -1
  73. data/lib/generators/rider_kick/templates/models/model_spec.rb.tt +68 -0
  74. data/lib/generators/rider_kick/templates/spec/factories/.gitkeep +19 -0
  75. data/lib/generators/rider_kick/templates/spec/factories/factory.rb.tt +8 -0
  76. data/lib/generators/rider_kick/templates/spec/rails_helper.rb +3 -0
  77. data/lib/generators/rider_kick/templates/spec/support/class_stubber.rb +148 -0
  78. data/lib/generators/rider_kick/templates/spec/support/factory_bot.rb +34 -0
  79. data/lib/generators/rider_kick/templates/spec/support/faker.rb +61 -0
  80. data/lib/generators/rider_kick/templates/spec/support/use_case_stubber.rb +14 -0
  81. data/lib/rider-kick.rb +8 -6
  82. data/lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb +644 -0
  83. data/lib/rider_kick/configuration.rb +258 -0
  84. data/lib/rider_kick/configuration_engine_spec.rb +377 -0
  85. data/lib/rider_kick/entities/failure_details.rb +1 -1
  86. data/lib/rider_kick/entities/failure_details_spec.rb +1 -1
  87. data/lib/rider_kick/matchers/use_case_result.rb +1 -1
  88. data/lib/rider_kick/use_cases/abstract_use_case.rb +1 -1
  89. data/lib/rider_kick/version.rb +1 -1
  90. metadata +132 -8
  91. data/CHANGELOG.md +0 -5
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rider-kick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.13
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kotaro Minami
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2025-12-24 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport
@@ -269,6 +269,46 @@ dependencies:
269
269
  - - "<"
270
270
  - !ruby/object:Gem::Version
271
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'
272
312
  - !ruby/object:Gem::Dependency
273
313
  name: rubocop-rspec
274
314
  requirement: !ruby/object:Gem::Requirement
@@ -289,31 +329,87 @@ dependencies:
289
329
  - - "<"
290
330
  - !ruby/object:Gem::Version
291
331
  version: '4.0'
292
- description: 'Rider Kick: opinionated generator to scaffold Clean Architecture (entities,
293
- use-cases, adapters) with Rails-friendly ergonomics.'
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
+ - - "<"
370
+ - !ruby/object:Gem::Version
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"
294
377
  email:
295
378
  - kotaroisme@gmail.com
296
379
  executables: []
297
380
  extensions: []
298
381
  extra_rdoc_files: []
299
382
  files:
300
- - CHANGELOG.md
301
383
  - LICENSE.txt
302
384
  - README.md
303
385
  - lib/generators/rider_kick/USAGE
386
+ - lib/generators/rider_kick/base_generator.rb
304
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
305
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/init_generator.rb
306
395
  - lib/generators/rider_kick/repositories_contract_spec.rb
307
396
  - lib/generators/rider_kick/scaffold_generator.rb
308
397
  - lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb
398
+ - lib/generators/rider_kick/scaffold_generator_conditional_filtering_spec.rb
309
399
  - lib/generators/rider_kick/scaffold_generator_contracts_spec.rb
310
400
  - lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb
401
+ - lib/generators/rider_kick/scaffold_generator_engine_spec.rb
311
402
  - lib/generators/rider_kick/scaffold_generator_idempotent_spec.rb
403
+ - lib/generators/rider_kick/scaffold_generator_list_spec_format_spec.rb
404
+ - lib/generators/rider_kick/scaffold_generator_rspec_spec.rb
312
405
  - lib/generators/rider_kick/scaffold_generator_success_spec.rb
313
406
  - lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb
314
407
  - lib/generators/rider_kick/structure_generator.rb
408
+ - lib/generators/rider_kick/structure_generator_comprehensive_spec.rb
409
+ - lib/generators/rider_kick/structure_generator_engine_spec.rb
315
410
  - lib/generators/rider_kick/structure_generator_spec.rb
316
411
  - lib/generators/rider_kick/structure_generator_success_spec.rb
412
+ - lib/generators/rider_kick/structure_generator_unit_spec.rb
317
413
  - lib/generators/rider_kick/templates/.gitignore
318
414
  - lib/generators/rider_kick/templates/.rspec
319
415
  - lib/generators/rider_kick/templates/.rubocop.yml
@@ -323,12 +419,14 @@ files:
323
419
  - lib/generators/rider_kick/templates/config/initializers/generators.rb.tt
324
420
  - lib/generators/rider_kick/templates/config/initializers/hashie.rb.tt
325
421
  - lib/generators/rider_kick/templates/config/initializers/pagy.rb.tt
422
+ - lib/generators/rider_kick/templates/config/initializers/rider_kick.rb.tt
326
423
  - lib/generators/rider_kick/templates/config/initializers/route_extensions.rb.tt
327
424
  - lib/generators/rider_kick/templates/config/initializers/version.rb.tt
328
425
  - lib/generators/rider_kick/templates/config/initializers/zeitwerk.rb.tt
329
426
  - lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb
330
427
  - lib/generators/rider_kick/templates/db/structures/example.yaml.tt
331
428
  - lib/generators/rider_kick/templates/domains/core/builders/builder.rb.tt
429
+ - lib/generators/rider_kick/templates/domains/core/builders/builder_spec.rb.tt
332
430
  - lib/generators/rider_kick/templates/domains/core/builders/error.rb.tt
333
431
  - lib/generators/rider_kick/templates/domains/core/builders/pagination.rb.tt
334
432
  - lib/generators/rider_kick/templates/domains/core/entities/entity.rb.tt
@@ -336,31 +434,51 @@ files:
336
434
  - lib/generators/rider_kick/templates/domains/core/entities/pagination.rb.tt
337
435
  - lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt
338
436
  - lib/generators/rider_kick/templates/domains/core/repositories/create.rb.tt
437
+ - lib/generators/rider_kick/templates/domains/core/repositories/create_spec.rb.tt
339
438
  - lib/generators/rider_kick/templates/domains/core/repositories/destroy.rb.tt
439
+ - lib/generators/rider_kick/templates/domains/core/repositories/destroy_spec.rb.tt
340
440
  - lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id.rb.tt
441
+ - lib/generators/rider_kick/templates/domains/core/repositories/fetch_by_id_spec.rb.tt
341
442
  - lib/generators/rider_kick/templates/domains/core/repositories/list.rb.tt
443
+ - lib/generators/rider_kick/templates/domains/core/repositories/list_spec.rb.tt
342
444
  - lib/generators/rider_kick/templates/domains/core/repositories/update.rb.tt
445
+ - lib/generators/rider_kick/templates/domains/core/repositories/update_spec.rb.tt
343
446
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt
344
447
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/pagination.rb.tt
345
448
  - lib/generators/rider_kick/templates/domains/core/use_cases/create.rb.tt
449
+ - lib/generators/rider_kick/templates/domains/core/use_cases/create_spec.rb.tt
346
450
  - lib/generators/rider_kick/templates/domains/core/use_cases/destroy.rb.tt
451
+ - lib/generators/rider_kick/templates/domains/core/use_cases/destroy_spec.rb.tt
347
452
  - lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id.rb.tt
453
+ - lib/generators/rider_kick/templates/domains/core/use_cases/fetch_by_id_spec.rb.tt
348
454
  - lib/generators/rider_kick/templates/domains/core/use_cases/get_version.rb.tt
349
455
  - lib/generators/rider_kick/templates/domains/core/use_cases/list.rb.tt
456
+ - lib/generators/rider_kick/templates/domains/core/use_cases/list_spec.rb.tt
350
457
  - lib/generators/rider_kick/templates/domains/core/use_cases/update.rb.tt
458
+ - lib/generators/rider_kick/templates/domains/core/use_cases/update_spec.rb.tt
351
459
  - lib/generators/rider_kick/templates/domains/core/utils/abstract_utils.rb.tt
352
460
  - lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt
353
461
  - lib/generators/rider_kick/templates/env.development
354
462
  - lib/generators/rider_kick/templates/env.production
355
463
  - lib/generators/rider_kick/templates/env.test
356
- - lib/generators/rider_kick/templates/models/application_record.rb
464
+ - lib/generators/rider_kick/templates/models/application_record.rb.tt
465
+ - lib/generators/rider_kick/templates/models/model_spec.rb.tt
357
466
  - lib/generators/rider_kick/templates/models/models.rb
467
+ - lib/generators/rider_kick/templates/spec/factories/.gitkeep
468
+ - lib/generators/rider_kick/templates/spec/factories/factory.rb.tt
358
469
  - lib/generators/rider_kick/templates/spec/fixtures/sample.pdf
359
470
  - lib/generators/rider_kick/templates/spec/rails_helper.rb
471
+ - lib/generators/rider_kick/templates/spec/support/class_stubber.rb
472
+ - lib/generators/rider_kick/templates/spec/support/factory_bot.rb
473
+ - lib/generators/rider_kick/templates/spec/support/faker.rb
360
474
  - lib/generators/rider_kick/templates/spec/support/file_stuber.rb
361
475
  - lib/generators/rider_kick/templates/spec/support/repository_stubber.rb
476
+ - lib/generators/rider_kick/templates/spec/support/use_case_stubber.rb
362
477
  - lib/rider-kick.rb
363
478
  - lib/rider_kick/builders/abstract_active_record_entity_builder.rb
479
+ - lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb
480
+ - lib/rider_kick/configuration.rb
481
+ - lib/rider_kick/configuration_engine_spec.rb
364
482
  - lib/rider_kick/entities/failure_details.rb
365
483
  - lib/rider_kick/entities/failure_details_spec.rb
366
484
  - lib/rider_kick/matchers/use_case_result.rb
@@ -377,10 +495,16 @@ metadata:
377
495
  homepage_uri: https://github.com/kotaroisme/rider-kick
378
496
  changelog_uri: https://github.com/kotaroisme/rider-kick/blob/main/CHANGELOG.md
379
497
  bug_tracker_uri: https://github.com/kotaroisme/rider-kick/issues
498
+ source_code_uri: https://github.com/kotaroisme/rider-kick
499
+ documentation_uri: https://github.com/kotaroisme/rider-kick#readme
380
500
  rubygems_mfa_required: 'true'
381
501
  post_install_message: |
382
502
  Thanks for installing rider-kick ⚡️
383
- Docs & examples: https://github.com/kotaroisme/rider-kick
503
+
504
+ Quick start:
505
+ rails generate rider_kick:clean_arch --setup
506
+
507
+ Documentation: https://github.com/kotaroisme/rider-kick
384
508
  PSA: Run `bundle exec rspec` to verify your generators and contracts.
385
509
  rdoc_options: []
386
510
  require_paths:
@@ -396,7 +520,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
396
520
  - !ruby/object:Gem::Version
397
521
  version: '0'
398
522
  requirements: []
399
- rubygems_version: 3.7.2
523
+ rubygems_version: 3.6.2
400
524
  specification_version: 4
401
525
  summary: Clean Architecture generator for Ruby/Rails apps.
402
526
  test_files: []
data/CHANGELOG.md DELETED
@@ -1,5 +0,0 @@
1
- ## [Unreleased]
2
-
3
- ## [0.1.0] - 2024-09-01
4
-
5
- - Initial release