rails_app_generator 0.1.27 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/generators/project-plan.rb +2 -3
  3. data/.rubocop.yml +2 -1
  4. data/CHANGELOG.md +28 -0
  5. data/after_templates/addons/acts_as_list/_.rb +0 -14
  6. data/after_templates/addons/mini_magick/_.rb +1 -1
  7. data/after_templates/{rag_bootstrap.rb → rag/bootstrap/_.rb} +1 -1
  8. data/after_templates/{rag_bootstrap → rag/bootstrap}/application-yield.html.erb +0 -0
  9. data/after_templates/{rag_bootstrap → rag/bootstrap}/application.html.erb +0 -0
  10. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-fancy.css +0 -0
  11. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-fancy.html +0 -0
  12. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-staff.css +0 -0
  13. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-staff.html +0 -0
  14. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-cards-styled.html +0 -0
  15. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-footer.html +0 -0
  16. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-hero.html +0 -0
  17. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-modal.html +0 -0
  18. data/after_templates/{rag_bootstrap → rag/bootstrap}/component-nav.html +0 -0
  19. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-bootstrap-import.scss +0 -0
  20. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-using-css.css +0 -0
  21. data/after_templates/{rag_bootstrap → rag/bootstrap}/custom-using-scss.scss +0 -0
  22. data/after_templates/{rag_bootstrap → rag/bootstrap}/manifest.js +0 -0
  23. data/after_templates/{rag_devise.rb → rag/devise/_.rb} +1 -1
  24. data/after_templates/{rag_devise → rag/devise}/application.html.erb +0 -0
  25. data/after_templates/{rag_devise → rag/devise}/application_controller.rb +0 -0
  26. data/after_templates/{rag_devise → rag/devise}/config/initializers/devise_turbo.rb +0 -0
  27. data/after_templates/{rag_devise → rag/devise}/layouts/_alerts.html.erb +0 -0
  28. data/after_templates/{rag_devise → rag/devise}/layouts/_footer.html.erb +0 -0
  29. data/after_templates/{rag_devise → rag/devise}/layouts/_navbar.html.erb +0 -0
  30. data/after_templates/{rag_devise → rag/devise}/layouts/application.html.erb +0 -0
  31. data/after_templates/{rag_devise → rag/devise}/post/_post.html.erb +0 -0
  32. data/after_templates/{rag_devise → rag/devise}/post/post.rb +0 -0
  33. data/after_templates/{rag_devise → rag/devise}/post/posts_controller.rb +0 -0
  34. data/after_templates/{rag_devise → rag/devise}/seed_data.rb +0 -0
  35. data/after_templates/{rag_devise → rag/devise}/turbo_controller.rb +0 -0
  36. data/after_templates/{rag_devise → rag/devise}/user.rb +0 -0
  37. data/after_templates/{rag_import_map.rb → rag/import_map/_.rb} +1 -1
  38. data/after_templates/{rag_import_map → rag/import_map}/component-sortable.html +0 -0
  39. data/after_templates/{rag_import_map → rag/import_map}/home.css +0 -0
  40. data/after_templates/{rag_import_map → rag/import_map}/position_controller.js +0 -0
  41. data/after_templates/{rag_printspeak.rb → rag/printspeak/_.rb} +1 -1
  42. data/after_templates/{rag_printspeak → rag/printspeak}/application_controller.rb +0 -0
  43. data/after_templates/{rag_printspeak → rag/printspeak}/faq.html.erb +0 -0
  44. data/after_templates/{rag_printspeak → rag/printspeak}/layouts/_footer.html.erb +0 -0
  45. data/after_templates/{rag_printspeak → rag/printspeak}/layouts/_head.html.erb +0 -0
  46. data/after_templates/{rag_printspeak → rag/printspeak}/layouts/_navbar.html.erb +0 -0
  47. data/after_templates/{rag_printspeak → rag/printspeak}/layouts/application.html.erb +0 -0
  48. data/after_templates/{rag_printspeak → rag/printspeak}/page/_footer.html.erb +0 -0
  49. data/after_templates/{rag_printspeak → rag/printspeak}/page/architecture.html.erb +0 -0
  50. data/after_templates/{rag_printspeak → rag/printspeak}/page/blog.html.erb +0 -0
  51. data/after_templates/{rag_printspeak → rag/printspeak}/page/faq.html.erb +0 -0
  52. data/after_templates/{rag_printspeak → rag/printspeak}/page/home.html.erb +0 -0
  53. data/after_templates/{rag_printspeak → rag/printspeak}/page/page_controller.rb +0 -0
  54. data/after_templates/{rag_printspeak → rag/printspeak}/page/readme.html.erb +0 -0
  55. data/after_templates/{rag_simple.rb → rag/simple/_.rb} +1 -1
  56. data/after_templates/{rag_tailwind.rb → rag/tailwind/_.rb} +1 -1
  57. data/after_templates/{rag_tailwind → rag/tailwind}/component-cta.html +0 -0
  58. data/after_templates/{rag_tailwind → rag/tailwind}/component-faq.html +0 -0
  59. data/after_templates/{rag_tailwind → rag/tailwind}/component-footer.html +0 -0
  60. data/after_templates/{rag_tailwind → rag/tailwind}/component-hero.html +0 -0
  61. data/after_templates/{rag_tailwind → rag/tailwind}/component-nav.html +0 -0
  62. data/after_templates/{rag_tailwind → rag/tailwind}/component-section-begin.html +0 -0
  63. data/after_templates/{rag_tailwind → rag/tailwind}/component-section-end.html +0 -0
  64. data/after_templates/{rag_tailwind_daisyui.rb → rag/tailwind_daisyui/_.rb} +1 -1
  65. data/after_templates/{rag_tailwind_daisyui → rag/tailwind_daisyui}/index.html.erb +0 -0
  66. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/Procfile.dev +0 -0
  67. data/after_templates/{rag_tailwind_emulating_bootstrap.rb → rag/tailwind_emulating_bootstrap/_.rb} +1 -1
  68. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application.html.erb +0 -0
  69. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application.tailwind.css +0 -0
  70. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/application_controller.rb +0 -0
  71. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/_example.html.erb +0 -0
  72. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/bootstrap.html.erb +0 -0
  73. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/home_controller.rb +0 -0
  74. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/index.html.erb +0 -0
  75. data/after_templates/{rag_tailwind_emulating_bootstrap → rag/tailwind_emulating_bootstrap}/home/tailwind.html.erb +0 -0
  76. data/after_templates/{rag_tailwind_hotwire.rb → rag/tailwind_hotwire/_.rb} +1 -1
  77. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/controller.rb +0 -0
  78. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/helper.rb +0 -0
  79. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/increment.html.erb +0 -0
  80. data/after_templates/{rag_tailwind_hotwire → rag/tailwind_hotwire}/home/index.html +0 -0
  81. data/after_templates/{rag_tailwind_hotwire_flash.rb → rag/tailwind_hotwire_flash/_.rb} +1 -1
  82. data/after_templates/{rag_tailwind_hotwire_form.rb → rag/tailwind_hotwire_form/_.rb} +1 -1
  83. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_contact.html.erb +0 -0
  84. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_count.html.erb +0 -0
  85. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_flash.html.erb +0 -0
  86. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_form.html.erb +0 -0
  87. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/_list.html.erb +0 -0
  88. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.html.erb +0 -0
  89. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.js +0 -0
  90. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application.tailwind.css +0 -0
  91. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/application_helper.rb +0 -0
  92. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/contact.rb +0 -0
  93. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/contacts_controller.rb +0 -0
  94. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/create.turbo_stream.erb +0 -0
  95. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/edit.html.erb +0 -0
  96. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/index.html.erb +0 -0
  97. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/new.html.erb +0 -0
  98. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/show.html.erb +0 -0
  99. data/after_templates/{rag_tailwind_hotwire_form → rag/tailwind_hotwire_form}/update.turbo_stream.erb +0 -0
  100. data/after_templates/{rag_tailwind_hotwire_form_search.rb → rag/tailwind_hotwire_form_search/_.rb} +1 -1
  101. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_contact.html.erb +0 -0
  102. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_count.html.erb +0 -0
  103. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_flash.html.erb +0 -0
  104. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_form.html.erb +0 -0
  105. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_list.html.erb +0 -0
  106. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/_theme_changer.html.erb +0 -0
  107. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.html.erb +0 -0
  108. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.js +0 -0
  109. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application.tailwind.css +0 -0
  110. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/application_helper.rb +0 -0
  111. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/contact.rb +0 -0
  112. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/contacts_controller.rb +0 -0
  113. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/create.turbo_stream.erb +0 -0
  114. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/edit.html.erb +0 -0
  115. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/index.html.erb +0 -0
  116. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/new.html.erb +0 -0
  117. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/search_controller.js +0 -0
  118. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/show.html.erb +0 -0
  119. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/theme_changer_controller.js +0 -0
  120. data/after_templates/{rag_tailwind_hotwire_form_search → rag/tailwind_hotwire_form_search}/update.turbo_stream.erb +0 -0
  121. data/docs/last_run/app_generator_class.json +430 -0
  122. data/docs/last_run/app_generator_data.json +49 -0
  123. data/docs/last_run/rails_options_class.json +430 -0
  124. data/docs/last_run/rails_options_data.json +57 -0
  125. data/docs/project-plan/project.drawio +46 -46
  126. data/docs/project-plan/project_todo.svg +1 -1
  127. data/exe/rag +2 -0
  128. data/lib/rails_app_generator/addon.rb +1 -1
  129. data/lib/rails_app_generator/addons/annotate.rb +0 -3
  130. data/lib/rails_app_generator/addons/twilio_ruby.rb +13 -0
  131. data/lib/rails_app_generator/app_generator.rb +39 -177
  132. data/lib/rails_app_generator/cli/profile.rb +3 -1
  133. data/lib/rails_app_generator/configuration/rag_configuration.rb +18 -0
  134. data/lib/rails_app_generator/configuration/rag_configuration_extension.rb +14 -0
  135. data/lib/rails_app_generator/options/build_option.rb +14 -9
  136. data/lib/rails_app_generator/options/options_builder.rb +67 -44
  137. data/lib/rails_app_generator/options/rails_options.rb +6 -68
  138. data/lib/rails_app_generator/rag_initializer.rb +252 -0
  139. data/lib/rails_app_generator/util.rb +26 -0
  140. data/lib/rails_app_generator/version.rb +1 -1
  141. data/lib/rails_app_generator.rb +4 -1
  142. data/package-lock.json +2 -2
  143. data/package.json +1 -1
  144. data/profiles/addons/mini_magick.json +2 -1
  145. data/profiles/{rag-bootstrap.json → rag/bootstrap.json} +1 -1
  146. data/profiles/{rag-devise.json → rag/devise.json} +1 -1
  147. data/profiles/{rag-import-map.json → rag/import-map.json} +1 -1
  148. data/profiles/{rag-printspeak.json → rag/printspeak.json} +3 -2
  149. data/profiles/{rag-simple.json → rag/simple.json} +3 -2
  150. data/profiles/{rag-tailwind-daisyui.json → rag/tailwind-daisyui.json} +1 -1
  151. data/profiles/{rag-tailwind-emulating-bootstrap.json → rag/tailwind-emulating-bootstrap.json} +2 -3
  152. data/profiles/{rag-tailwind-hotwire-flash.json → rag/tailwind-hotwire-flash.json} +1 -1
  153. data/profiles/{rag-tailwind-hotwire-form-search.json → rag/tailwind-hotwire-form-search.json} +1 -1
  154. data/profiles/{rag-tailwind-hotwire-form.json → rag/tailwind-hotwire-form.json} +1 -1
  155. data/profiles/{rag-tailwind-hotwire.json → rag/tailwind-hotwire.json} +1 -1
  156. data/profiles/{rag-tailwind.json → rag/tailwind.json} +3 -2
  157. data/templates/thor_task/addon/addon.tt +2 -6
  158. metadata +150 -130
  159. data/profiles/rag-add-some-pages.json +0 -11
  160. data/profiles/rag-sample.json +0 -13
@@ -0,0 +1,252 @@
1
+ # frozen_string_literal: true
2
+
3
+ # frozen__tring_literal: true
4
+
5
+ KConfig.configure do |config|
6
+ rag = config.rag
7
+ # https://railsbytes.com/public/templates
8
+ # http://www.railscomposer.com/
9
+ # https://github.com/RailsApps/rails-composer
10
+ # https://github.com/carbonfive/raygun-rails
11
+ # https://github.com/abhaynikam/boring_generators
12
+
13
+ # rag.add_option :test , type: :string , default: 'rspec'
14
+
15
+ # # Gem Current Latest Requested Groups
16
+ # # aws-sdk
17
+ # # capistrano-bundler 1.6.0 2.1.0 ~> 1.2 development, test
18
+ # # capybara 3.33.0 3.37.1 = 3.33.0 development, test
19
+ # # clamby 1.6.6 1.6.8 = 1.6.6 default
20
+ # # createsend 5.1.1 6.0.0 ~> 5.1 default
21
+ # # database_cleaner 1.7.0 2.0.1 = 1.7.0 development, test
22
+ # # erubi 1.10.0 1.11.0
23
+ # # factory_bot 5.2.0 6.2.1
24
+ # # factory_bot_rails 5.2.0 6.2.0 = 5.2.0 development, test
25
+ # # guard-bundler 2.2.1 3.0.0 = 2.2.1 development, test
26
+ # # guard-rubocop 1.4.0 1.5.0 = 1.4.0 development, test
27
+ # # http-accept 1.7.0 2.2.0
28
+ # # net-ssh 6.1.0 7.0.1
29
+ # # oauth2 1.4.10 2.0.6
30
+ # # omniauth-oauth2 1.7.3 1.8.0
31
+ # # paper_trail 10.3.1 12.3.0 ~> 10.3 default
32
+ # # pg 0.21.0 1.4.2 ~> 0.20 default
33
+ # # pg_search 2.3.0 2.3.6 ~> 2.0 default
34
+ # # pry 0.13.1 0.14.1
35
+ # # public_suffix 2.0.5 5.0.0 ~> 2.0 default
36
+ # # pusher 1.4.3 2.0.2 ~> 1.3 default
37
+ # # rack-mini-profiler 0.10.7 3.0.0 ~> 0.10 default
38
+ # # rack-test 0.6.3 2.0.2
39
+ # # rails 5.0.7.2 7.0.3.1 = 5.0.7.2 default
40
+ # # railties 5.0.7.2 7.0.3.1
41
+ # # ransack 1.8.10 3.2.1 ~> 1.8 default
42
+ # # redis 3.3.5 4.7.1 ~> 3.3 default
43
+ # # redis-store 1.6.0 1.9.1
44
+ # # regexp_parser 1.8.2 2.5.0
45
+ # # rspec 3.10.0 3.11.0
46
+ # # rspec-core 3.10.1 3.11.0 = 3.10.1 development, test
47
+ # # rspec-expectations 3.10.1 3.11.0 = 3.10.1 development, test
48
+ # # rspec-mocks 3.10.2 3.11.1 = 3.10.2 development, test
49
+ # # rspec-rails 4.1.2 5.1.2 = 4.1.2 development, test
50
+ # # rspec-support 3.10.2 3.11.0 = 3.10.2 development, test
51
+ # # rubyzip 1.3.0 2.3.2 ~> 1.3 default
52
+ # # scenic 1.5.4 1.6.0 = 1.5.4 default
53
+ # # scout_apm 4.1.2 5.2.0 ~> 4.1 default
54
+ # # selenium-webdriver 3.142.7 4.3.0 = 3.142.7 development, test
55
+ # # shoulda-matchers 4.0.1 5.1.0 = 4.0.1 development, test
56
+ # # sidekiq 4.2.10 6.5.1 ~> 4.2 default
57
+ # # sidekiq-pool 1.9.3 2.0.1 ~> 1.8 default
58
+ # # sidekiq-unique-jobs 6.0.25 7.1.27 ~> 6.0 default
59
+ # # spring 2.1.1 4.0.0 ~> 2.0 development, test
60
+ # # sprockets 3.7.2 4.1.1 ~> 3.7 default
61
+ # # sprockets-rails 3.2.2 3.4.2
62
+ # # timecop 0.8.1 0.9.5 = 0.8.1 development, test
63
+ # # tzinfo 1.2.10 2.0.5
64
+ # # uglifier 3.2.0 4.2.0 ~> 3.2 default
65
+ # # unicorn 5.8.0 6.1.0 ~> 5.3 default
66
+ # # webmock 3.13.0 3.16.0 = 3.13.0 development, test
67
+ # # websocket-driver 0.6.5 0.7.5
68
+
69
+ # # acts_as_list 0.9.19 1.0.4 ~> 0.9 default
70
+ # # arel 7.1.4 9.0.0
71
+ # # bigdecimal 1.4.4 3.1.2 ~> 1.4 development, test
72
+ # # binding_of_caller 0.8.0 1.0.0 ~> 0.8 default
73
+ # # browser 2.7.1 5.3.1 ~> 2.3 default
74
+ # # capistrano-bundler 1.6.0 2.1.0 ~> 1.2 development, test
75
+ # # capybara 3.33.0 3.37.1 = 3.33.0 development, test
76
+ # # chartkick 2.3.5 4.2.0 ~> 2.3 default
77
+ # # childprocess 3.0.0 4.1.0
78
+ # # clamby 1.6.6 1.6.8 = 1.6.6 default
79
+ # # createsend 5.1.1 6.0.0 ~> 5.1 default
80
+ # # database_cleaner 1.7.0 2.0.1 = 1.7.0 development, test
81
+ # # factory_bot 5.2.0 6.2.1
82
+ # # factory_bot_rails 5.2.0 6.2.0 = 5.2.0 development, test
83
+ # # faker 1.9.6 2.22.0 ~> 1.7 default
84
+ # # groupdate 4.3.0 6.1.0 ~> 4.1 default
85
+ # # guard-bundler 2.2.1 3.0.0 = 2.2.1 development, test
86
+ # # guard-rubocop 1.4.0 1.5.0 = 1.4.0 development, test
87
+ # # hashie 3.6.0 5.0.0
88
+ # # http-accept 1.7.0 2.1.1
89
+ # # k_log 0.0.18 0.0.33 = 0.0.18 development, test
90
+ # # net-ssh 6.1.0 7.0.1
91
+ # # oauth2 1.4.10 2.0.6
92
+ # # omniauth-oauth2 1.7.3 1.8.0
93
+ # # paper_trail 10.3.1 12.3.0 ~> 10.3 default
94
+ # # pg 0.21.0 1.4.2 ~> 0.20 default
95
+ # # pg_search 2.3.0 2.3.6 ~> 2.0 default
96
+ # # pry 0.13.1 0.14.1
97
+ # # public_suffix 2.0.5 5.0.0 ~> 2.0 default
98
+ # # pusher 1.4.3 2.0.2 ~> 1.3 default
99
+ # # rack-mini-profiler 0.10.7 3.0.0 ~> 0.10 default
100
+ # # rack-test 0.6.3 2.0.2
101
+ # # rails 5.0.7.2 7.0.3.1 = 5.0.7.2 default
102
+ # # railties 5.0.7.2 7.0.3.1
103
+ # # ransack 1.8.10 3.2.1 ~> 1.8 default
104
+ # # redis 3.3.5 4.7.1 ~> 3.3 default
105
+ # # redis-store 1.6.0 1.9.1
106
+ # # regexp_parser 1.8.2 2.5.0
107
+ # # rspec 3.10.0 3.11.0
108
+ # # rspec-core 3.10.1 3.11.0 = 3.10.1 development, test
109
+ # # rspec-expectations 3.10.1 3.11.0 = 3.10.1 development, test
110
+ # # rspec-mocks 3.10.2 3.11.1 = 3.10.2 development, test
111
+ # # rspec-rails 4.1.2 5.1.2 = 4.1.2 development, test
112
+ # # rspec-support 3.10.2 3.11.0 = 3.10.2 development, test
113
+ # # rubyzip 1.3.0 2.3.2 ~> 1.3 default
114
+ # # scenic 1.5.4 1.6.0 = 1.5.4 default
115
+ # # scout_apm 4.1.2 5.2.0 ~> 4.1 default
116
+ # # selenium-webdriver 3.142.7 4.3.0 = 3.142.7 development, test
117
+ # # shoulda-matchers 4.0.1 5.1.0 = 4.0.1 development, test
118
+ # # sidekiq 4.2.10 6.5.1 ~> 4.2 default
119
+ # # sidekiq-pool 1.9.3 2.0.1 ~> 1.8 default
120
+ # # sidekiq-unique-jobs 6.0.25 7.1.27 ~> 6.0 default
121
+ # # spring 2.1.1 4.0.0 ~> 2.0 development, test
122
+ # # sprockets 3.7.2 4.1.1 ~> 3.7 default
123
+ # # sprockets-rails 3.2.2 3.4.2
124
+ # # timecop 0.8.1 0.9.5 = 0.8.1 development, test
125
+ # # tzinfo 1.2.10 2.0.5
126
+ # # uglifier 3.2.0 4.2.0 ~> 3.2 default
127
+ # # unicorn 5.8.0 6.1.0 ~> 5.3 default
128
+ # # webmock 3.13.0 3.14.0 = 3.13.0 development, test
129
+ # # websocket-driver 0.6.5 0.7.5
130
+
131
+ # rag.add_option :skip_namespace , type: :boolean , default: false , description: "Skip namespace (affects only isolated engines)"
132
+ # rag.add_option :skip_collision_check , type: :boolean , default: false , description: "Skip collision check"
133
+ rag.add_option :force , type: :boolean , default: nil , description: 'Overwrite files that already exist'
134
+ # XXX rag.add_option :pretend , type: :boolean , default: nil , description: "Run but do not make any changes"
135
+ # XXX rag.add_option :quiet , type: :boolean , default: nil , description: "Suppress status output"
136
+ # XXX rag.add_option :skip , type: :boolean , default: nil , description: "Skip files that already exist"
137
+ # rag.add_option :ruby , type: :string , default: "/Users/davidcruwys/.asdf/installs/ruby/2.7.6/bin/ruby" , description: "Path to the Ruby binary of your choice"
138
+ # XXX rag.add_option :template , type: :string , default: nil , description: "Path to some application template (can be a filesystem path or URL)"
139
+ # rag.add_option :database , type: :string , default: "sqlite3" , description: "Preconfigure for selected database (options: mysql/postgresql/sqlite3/oracle/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)"
140
+ # rag.add_option :skip_git , type: :boolean , default: false , description: "Skip .gitignore file"
141
+ # rag.add_option :skip_keeps , type: :boolean , default: false , description: "Skip source control .keep files"
142
+ # rag.add_option :skip_action_mailer , type: :boolean , default: false , description: "Skip Action Mailer files"
143
+ # rag.add_option :skip_action_mailbox , type: :boolean , default: false , description: "Skip Action Mailbox gem"
144
+ # rag.add_option :skip_action_text , type: :boolean , default: false , description: "Skip Action Text gem"
145
+ # rag.add_option :skip_active_record , type: :boolean , default: false , description: "Skip Active Record files"
146
+ # rag.add_option :skip_active_job , type: :boolean , default: false , description: "Skip Active Job"
147
+ # rag.add_option :skip_active_storage , type: :boolean , default: false , description: "Skip Active Storage files"
148
+ # rag.add_option :skip_action_cable , type: :boolean , default: false , description: "Skip Action Cable files"
149
+ # rag.add_option :skip_asset_pipeline , type: :boolean , default: false , description: "Indicates when to generate skip asset pipeline"
150
+ # rag.add_option :asset_pipeline , type: :string , default: "sprockets" , description: "Choose your asset pipeline [options: sprockets (default), propshaft]"
151
+ # rag.add_option :skip_javascript , type: :boolean , default: false , description: "Skip JavaScript files"
152
+ # rag.add_option :skip_hotwire , type: :boolean , default: false , description: "Skip Hotwire integration"
153
+ # rag.add_option :skip_jbuilder , type: :boolean , default: false , description: "Skip jbuilder gem"
154
+ # rag.add_option :skip_test , type: :boolean , default: false , description: "Skip test files"
155
+ # rag.add_option :skip_system_test , type: :boolean , default: false , description: "Skip system test files"
156
+ # rag.add_option :skip_bootsnap , type: :boolean , default: false , description: "Skip bootsnap gem"
157
+ # rag.add_option :dev , type: :boolean , default: false , description: "Set up the application with Gemfile pointing to your Rails checkout"
158
+ # rag.add_option :edge , type: :boolean , default: false , description: "Set up the application with Gemfile pointing to Rails repository"
159
+ rag.add_option :note , type: :string , default: nil , description: "Set a note or comment"
160
+ # rag.add_option :main , type: :boolean , default: false , description: "Set up the application with Gemfile pointing to Rails repository main branch"
161
+ # rag.add_option :rc , type: :string , default: nil , description: "Path to file containing extra configuration options for rails command"
162
+ # rag.add_option :no_rc , type: :boolean , default: false , description: "Skip loading of extra configuration options from .railsrc file"
163
+ # rag.add_option :help , type: :boolean , default: nil , description: "Show this help message and quit"
164
+ # rag.add_option :version , type: :boolean , default: nil , description: "Show Rails version number and quit"
165
+ # rag.add_option :api , type: :boolean , default: false , description: "Preconfigure smaller stack for API only apps"
166
+ # rag.add_option :minimal , type: :boolean , default: nil , description: "Preconfigure a minimal rails app"
167
+ # rag.add_option :javascript , type: :string , default: "importmap" , description: "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]"
168
+ # rag.add_option :css , type: :string , default: nil , description: "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]"
169
+ # rag.add_option :skip_bundle , type: :boolean , default: false , description: "Don't run bundle install"
170
+
171
+ # future_option :database , type: :string , default: 'sqlite3' # , description: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
172
+ # rag.add_option :skip_git , type: :boolean, default: false # , description: "Skip .gitignore file"
173
+ # future_option :skip_keeps , type: :boolean, default: false # , description: "Skip source control .keep files"
174
+ # future_option :skip_action_mailer , type: :boolean, default: false # , description: "Skip Action Mailer files"
175
+ # future_option :skip_action_mailbox , type: :boolean, default: false # , description: "Skip Action Mailbox gem"
176
+ # future_option :skip_action_text , type: :boolean, default: false # , description: "Skip Action Text gem"
177
+ # future_option :skip_active_record , type: :boolean, default: false # , description: "Skip Active Record files"
178
+ # future_option :skip_active_job , type: :boolean, default: false # , description: "Skip Active Job"
179
+ # future_option :skip_active_storage , type: :boolean, default: false # , description: "Skip Active Storage files"
180
+ # future_option :skip_action_cable , type: :boolean, default: false # , description: "Skip Action Cable files"
181
+ # future_option :skip_asset_pipeline , type: :boolean, default: false #
182
+ # future_option :asset_pipeline , type: :string , default: 'sprockets' # , description: "Choose your asset pipeline [options: sprockets (default), propshaft]"
183
+ # future_option :skip_javascript , type: :boolean, default: false # name == 'plugin' # , description: "Skip JavaScript files"
184
+ # future_option :skip_hotwire , type: :boolean, default: false # , description: "Skip Hotwire integration"
185
+ # future_option :skip_jbuilder , type: :boolean, default: false # , description: "Skip jbuilder gem"
186
+ # rag.add_option :skip_test , type: :boolean, default: false # , description: "Skip test files"
187
+ rag.add_option :test , type: :string , default: 'rspec' # , description: "minitest or rspec (default: rspec)"
188
+ # future_option :skip_system_test , type: :boolean, default: false # , description: "Skip system test files"
189
+ # future_option :skip_bootsnap , type: :boolean, default: false # , description: "Skip bootsnap gem"
190
+ # future_option :dev , type: :boolean, default: false # , description: "Set up the #{name} with Gemfile pointing to your Rails checkout"
191
+ # future_option :edge , type: :boolean, default: false # , description: "Set up the #{name} with Gemfile pointing to Rails repository"
192
+ # future_option :main , type: :boolean, default: false # , description: "Set up the #{name} with Gemfile pointing to Rails repository main branch"
193
+ # future_option :rc , type: :string , default: nil # , description: "Path to file containing extra configuration options for rails command"
194
+ # future_option :no_rc , type: :boolean, default: false # , description: "Skip loading of extra configuration options from .railsrc file"
195
+ # future_option :help , type: :boolean # , group: :rails # , description: "Show this help message and quit"
196
+ # future_option :version , type: :boolean # , group: :rails, description: "Show Rails version number and quit"
197
+ # future_option :api , type: :boolean # , description: "Preconfigure smaller stack for API only apps"
198
+ # future_option :minimal , type: :boolean # , description: "Preconfigure a minimal rails app"
199
+ # future_option :javascript , type: :string , default: 'importmap' # , description: "Choose JavaScript approach [options: importmap (default), webpack, esbuild, rollup]"
200
+ # rag.add_option :css , type: :string , description: "Choose CSS processor [options: tailwind, bootstrap, bulma, postcss, sass... check https://github.com/rails/cssbundling-rails]"
201
+ # rag.add_option :skip_bundle , type: :boolean, default: false , description: "Don't run bundle install"
202
+
203
+ # rag.add_option :add_irbrc , type: :boolean, default: false
204
+ # rag.add_option :add_foreman , type: :boolean, default: false
205
+ rag.add_option :add_devise , type: :boolean, default: false
206
+ # rag.add_option :add_dotenv , type: :boolean, default: false
207
+ # rag.add_option :add_docker , type: :boolean, default: false
208
+ # rag.add_option :add_docker_compose , type: :boolean, default: false
209
+ # rag.add_option :add_rubocop , type: :boolean, default: false
210
+ rag.add_option :add_annotate , type: :boolean, default: false
211
+ # rag.add_option :add_continuous_integration , type: :boolean, default: false
212
+ # rag.add_option :add_high_voltage , type: :boolean, default: false
213
+ # rag.add_option :add_generators , type: :boolean, default: false
214
+ # rag.add_option :add_lograge , type: :boolean, default: false
215
+ # rag.add_option :add_pundit , type: :boolean, default: false
216
+ # rag.add_option :add_services , type: :boolean, default: false
217
+ # rag.add_option :add_sidekiq , type: :boolean, default: false
218
+ # rag.add_option :add_views , type: :boolean, default: false
219
+ # rag.add_option :add_errors , type: :boolean, default: false
220
+ # rag.add_option :add_scaffold , type: :boolean, default: false
221
+ # rag.add_option :add_factory_bot , type: :boolean, default: false
222
+ # rag.add_option :add_shoulda , type: :boolean, default: false
223
+
224
+ # NEW GEM ADDONS
225
+ rag.add_option :add_acts_as_list , type: :boolean, default: false
226
+ rag.add_option :add_browser , type: :boolean, default: false
227
+ rag.add_option :add_chartkick , type: :boolean, default: false
228
+ rag.add_option :add_faker , type: :boolean, default: false
229
+ rag.add_option :add_groupdate , type: :boolean, default: false
230
+ rag.add_option :add_hexapdf , type: :boolean, default: false
231
+ rag.add_option :add_httparty , type: :boolean, default: false
232
+ rag.add_option :add_honeybadger , type: :boolean, default: false
233
+ rag.add_option :add_mini_magick , type: :boolean, default: false , description: 'Add Mini Magick gem'
234
+ rag.add_option :add_rails_html_sanitizer , type: :boolean, default: false
235
+ rag.add_option :add_twilio_ruby , type: :boolean, default: false
236
+ end
237
+
238
+ # Make sure that RailsOptions reflect the options available from Railties
239
+ RailsAppGenerator::AppGenerator.class_options.each do |class_option|
240
+ thor_option = class_option[1]
241
+ # puts "Adding railties class_option onto RailsOptions: #{thor_option.name}"
242
+ RailsAppGenerator::RailsOptions.add_thor_class_option(thor_option)
243
+ end
244
+ # Make sure that RailsOptions reflect the options available from custom configuration
245
+ KConfig.configuration.rag.options.each do |option|
246
+ RailsAppGenerator::RailsOptions.add_class_option(option)
247
+ RailsAppGenerator::AppGenerator.add_class_option(option)
248
+ end
249
+
250
+ # Debugging code
251
+ RailsAppGenerator::Util.write_last_run('rails_options_class.json', RailsAppGenerator::RailsOptions.to_h)
252
+ RailsAppGenerator::Util.write_last_run('app_generator_class.json', RailsAppGenerator::AppGenerator.to_h)
@@ -21,6 +21,32 @@ module RailsAppGenerator
21
21
  heading = "- [ #{heading} ]"
22
22
  puts heading.length > len ? heading : heading.ljust(len, '-')
23
23
  end
24
+
25
+ def write_last_run(file, data)
26
+ file = File.join('~/dev/kgems/rails_app_generator/docs/last_run/', file)
27
+ write_json(file, data)
28
+ end
29
+
30
+ def write_json(file, data)
31
+ file = File.expand_path(file)
32
+ puts "Write to #{file}"
33
+ FileUtils.mkdir_p(File.dirname(file))
34
+ File.write(file, JSON.pretty_generate(data))
35
+ end
36
+
37
+ # Take array of Thor::Option and extract the data as a hash
38
+ #
39
+ # You can find the array on the class_options reader
40
+ def thor_options_to_hash(thor_options)
41
+ common_keys = thor_options.flat_map(&:instance_variables).uniq
42
+ common_keys = common_keys.map { |k| k.to_s.delete_prefix('@').to_sym }
43
+
44
+ thor_options.map do |option|
45
+ common_keys.each_with_object({}) do |key, result|
46
+ result[key] = option.send(key) if option.respond_to?(key)
47
+ end
48
+ end
49
+ end
24
50
  end
25
51
  end
26
52
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.1.27'
4
+ VERSION = '0.2.1'
5
5
  end
@@ -6,11 +6,14 @@ require 'rails/generators'
6
6
  require 'rails/generators/app_name'
7
7
  require 'rails/generators/rails/app/app_generator'
8
8
  require 'bundler'
9
+ require 'k_config'
9
10
 
10
11
  require 'rails_app_generator/version'
12
+ require 'rails_app_generator/util'
13
+ require 'rails_app_generator/configuration/rag_configuration'
14
+ require 'rails_app_generator/configuration/rag_configuration_extension'
11
15
  require 'rails_app_generator/cli/diff'
12
16
  require 'rails_app_generator/cli/profile'
13
- require 'rails_app_generator/util'
14
17
  require 'rails_app_generator/diff/file_pair'
15
18
  require 'rails_app_generator/diff/compare_info'
16
19
  require 'rails_app_generator/diff/processor'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.27",
3
+ "version": "0.2.1",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.1.27",
9
+ "version": "0.2.1",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.27",
3
+ "version": "0.2.1",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -7,6 +7,7 @@
7
7
  "skip_git": true,
8
8
  "skip_test": true,
9
9
  "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/mini_magick/_.rb",
10
- "add_mini_magick": true
10
+ "add_mini_magick": true,
11
+ "force": true
11
12
  }
12
13
  }
@@ -6,7 +6,7 @@
6
6
  "opts": {
7
7
  "skip_git": true,
8
8
  "skip_test": true,
9
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_bootstrap.rb",
9
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/bootstrap/_.rb",
10
10
  "css": "bootstrap"
11
11
  }
12
12
  }
@@ -6,7 +6,7 @@
6
6
  "opts": {
7
7
  "skip_git": true,
8
8
  "skip_test": true,
9
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_devise.rb",
9
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/devise/_.rb",
10
10
  "add_devise": true
11
11
  }
12
12
  }
@@ -6,6 +6,6 @@
6
6
  "opts": {
7
7
  "skip_test": true,
8
8
  "skip_javascript": true,
9
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_import_map.rb"
9
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/import_map/_.rb"
10
10
  }
11
11
  }
@@ -5,7 +5,8 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_printspeak.rb",
9
- "javascript": "esbuild"
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/printspeak/_.rb",
9
+ "javascript": "esbuild",
10
+ "add_annotate": true
10
11
  }
11
12
  }
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "args": {
3
3
  "app_path": "simple",
4
- "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag"
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag",
5
+ "capture_output": false
5
6
  },
6
7
  "opts": {
7
8
  "skip_test": true,
8
9
  "skip_bundle": true,
9
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_simple.rb"
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/simple/_.rb"
10
11
  }
11
12
  }
@@ -5,6 +5,6 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_daisyui.rb"
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_daisyui/_.rb"
9
9
  }
10
10
  }
@@ -5,8 +5,7 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_emulating_bootstrap.rb",
9
- "note": "tailwind needs to be installed manually because of style reuse",
10
- "XXX-css": "tailwind"
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_emulating_bootstrap/_.rb",
9
+ "note": "tailwind needs to be installed manually because of style reuse"
11
10
  }
12
11
  }
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_hotwire_flash.rb",
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_hotwire_flash/_.rb",
9
9
  "css": "tailwind"
10
10
  }
11
11
  }
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_hotwire_form_search.rb",
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_hotwire_form_search/_.rb",
9
9
  "note": "tailwind needs to be installed manually because of the custom tailwind plugins",
10
10
  "XXX-css": "tailwind",
11
11
  "javascript": "esbuild"
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_hotwire_form.rb",
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_hotwire_form/_.rb",
9
9
  "note": "tailwind needs to be installed manually because of the custom tailwind plugins",
10
10
  "XXX-css": "tailwind",
11
11
  "javascript": "esbuild"
@@ -5,7 +5,7 @@
5
5
  },
6
6
  "opts": {
7
7
  "skip_test": true,
8
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_hotwire.rb",
8
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind_hotwire/_.rb",
9
9
  "css": "tailwind",
10
10
  "javascript": "esbuild"
11
11
  }
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "args": {
3
3
  "app_path": "tailwind",
4
- "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag"
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag",
5
+ "capture_output": true
5
6
  },
6
7
  "opts": {
7
8
  "skip_git": true,
8
9
  "skip_test": true,
9
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind.rb",
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag/tailwind/_.rb",
10
11
  "css": "tailwind"
11
12
  }
12
13
  }
@@ -1,11 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # NEW GEM ADDONS
4
- # lib/rails_app_generator/app_generator.rb
5
- # class_option :add_<%= data.name_snake %>, type: :boolean, default: false
6
- # add_if(:<%= data.name_snake %>)
7
- # lib/rails_app_generator/options/rails_options.rb
8
- # register_option :add_<%= data.name_snake %>, type: :boolean, default: false
3
+ # lib/rails_app_generator/rag_initializer.rb
4
+ # config.rag.add_option :add_<%= data.name_snake %> , type: :boolean, default: false
9
5
 
10
6
  module RailsAppGenerator
11
7
  # Custom add-ons for RailsAppGenerator