rider-kick 0.0.13 → 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 (88) 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 +235 -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/repositories_contract_spec.rb +95 -22
  13. data/lib/generators/rider_kick/scaffold_generator.rb +377 -62
  14. data/lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb +119 -14
  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 +37 -10
  17. data/lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb +40 -11
  18. data/lib/generators/rider_kick/scaffold_generator_engine_spec.rb +221 -0
  19. data/lib/generators/rider_kick/scaffold_generator_idempotent_spec.rb +38 -13
  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 +31 -12
  23. data/lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb +32 -11
  24. data/lib/generators/rider_kick/structure_generator.rb +154 -43
  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 +3 -3
  28. data/lib/generators/rider_kick/structure_generator_success_spec.rb +33 -5
  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 +140 -66
  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 -4
  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 +13 -8
  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 +3 -3
  66. data/lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt +1 -1
  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 +8 -6
  79. data/lib/rider_kick/builders/abstract_active_record_entity_builder_spec.rb +644 -0
  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 +1 -1
  83. data/lib/rider_kick/entities/failure_details_spec.rb +1 -1
  84. data/lib/rider_kick/matchers/use_case_result.rb +1 -1
  85. data/lib/rider_kick/use_cases/abstract_use_case.rb +1 -1
  86. data/lib/rider_kick/version.rb +1 -1
  87. metadata +129 -8
  88. 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.14
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-02 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,86 @@ 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
306
394
  - lib/generators/rider_kick/repositories_contract_spec.rb
307
395
  - lib/generators/rider_kick/scaffold_generator.rb
308
396
  - lib/generators/rider_kick/scaffold_generator_builder_uploaders_spec.rb
397
+ - lib/generators/rider_kick/scaffold_generator_conditional_filtering_spec.rb
309
398
  - lib/generators/rider_kick/scaffold_generator_contracts_spec.rb
310
399
  - lib/generators/rider_kick/scaffold_generator_contracts_with_scope_spec.rb
400
+ - lib/generators/rider_kick/scaffold_generator_engine_spec.rb
311
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
312
404
  - lib/generators/rider_kick/scaffold_generator_success_spec.rb
313
405
  - lib/generators/rider_kick/scaffold_generator_with_scope_spec.rb
314
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
315
409
  - lib/generators/rider_kick/structure_generator_spec.rb
316
410
  - lib/generators/rider_kick/structure_generator_success_spec.rb
411
+ - lib/generators/rider_kick/structure_generator_unit_spec.rb
317
412
  - lib/generators/rider_kick/templates/.gitignore
318
413
  - lib/generators/rider_kick/templates/.rspec
319
414
  - lib/generators/rider_kick/templates/.rubocop.yml
@@ -329,6 +424,7 @@ files:
329
424
  - lib/generators/rider_kick/templates/db/migrate/20220613145533_init_database.rb
330
425
  - lib/generators/rider_kick/templates/db/structures/example.yaml.tt
331
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
332
428
  - lib/generators/rider_kick/templates/domains/core/builders/error.rb.tt
333
429
  - lib/generators/rider_kick/templates/domains/core/builders/pagination.rb.tt
334
430
  - lib/generators/rider_kick/templates/domains/core/entities/entity.rb.tt
@@ -336,31 +432,50 @@ files:
336
432
  - lib/generators/rider_kick/templates/domains/core/entities/pagination.rb.tt
337
433
  - lib/generators/rider_kick/templates/domains/core/repositories/abstract_repository.rb.tt
338
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
339
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
340
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
341
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
342
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
343
444
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/default.rb.tt
344
445
  - lib/generators/rider_kick/templates/domains/core/use_cases/contract/pagination.rb.tt
345
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
346
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
347
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
348
452
  - lib/generators/rider_kick/templates/domains/core/use_cases/get_version.rb.tt
349
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
350
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
351
457
  - lib/generators/rider_kick/templates/domains/core/utils/abstract_utils.rb.tt
352
458
  - lib/generators/rider_kick/templates/domains/core/utils/request_methods.rb.tt
353
459
  - lib/generators/rider_kick/templates/env.development
354
460
  - lib/generators/rider_kick/templates/env.production
355
461
  - lib/generators/rider_kick/templates/env.test
356
- - 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
357
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
358
467
  - lib/generators/rider_kick/templates/spec/fixtures/sample.pdf
359
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
360
472
  - lib/generators/rider_kick/templates/spec/support/file_stuber.rb
361
473
  - lib/generators/rider_kick/templates/spec/support/repository_stubber.rb
362
474
  - lib/rider-kick.rb
363
475
  - lib/rider_kick/builders/abstract_active_record_entity_builder.rb
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
364
479
  - lib/rider_kick/entities/failure_details.rb
365
480
  - lib/rider_kick/entities/failure_details_spec.rb
366
481
  - lib/rider_kick/matchers/use_case_result.rb
@@ -377,10 +492,16 @@ metadata:
377
492
  homepage_uri: https://github.com/kotaroisme/rider-kick
378
493
  changelog_uri: https://github.com/kotaroisme/rider-kick/blob/main/CHANGELOG.md
379
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
380
497
  rubygems_mfa_required: 'true'
381
498
  post_install_message: |
382
499
  Thanks for installing rider-kick ⚡️
383
- Docs & examples: https://github.com/kotaroisme/rider-kick
500
+
501
+ Quick start:
502
+ rails generate rider_kick:clean_arch --setup
503
+
504
+ Documentation: https://github.com/kotaroisme/rider-kick
384
505
  PSA: Run `bundle exec rspec` to verify your generators and contracts.
385
506
  rdoc_options: []
386
507
  require_paths:
@@ -396,7 +517,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
396
517
  - !ruby/object:Gem::Version
397
518
  version: '0'
398
519
  requirements: []
399
- rubygems_version: 3.7.2
520
+ rubygems_version: 3.6.2
400
521
  specification_version: 4
401
522
  summary: Clean Architecture generator for Ruby/Rails apps.
402
523
  test_files: []
data/CHANGELOG.md DELETED
@@ -1,5 +0,0 @@
1
- ## [Unreleased]
2
-
3
- ## [0.1.0] - 2024-09-01
4
-
5
- - Initial release