roro 0.3.30 → 0.3.33

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 (542) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.reference.yml +139 -0
  3. data/.circleci/config.yml +154 -135
  4. data/.circleci/src/@config.yml +2 -0
  5. data/.circleci/src/commands/restore-and-save-cache.yml +11 -0
  6. data/.circleci/src/commands/run-test-case.yml +11 -0
  7. data/.circleci/src/executors/linux.yml +2 -0
  8. data/.circleci/src/executors/ruby.yml +7 -0
  9. data/.circleci/src/jobs/build.yml +5 -0
  10. data/.circleci/src/jobs/release.yml +10 -0
  11. data/.circleci/src/jobs/test-adventures.yml +15 -0
  12. data/.circleci/src/jobs/test-rubies.yml +14 -0
  13. data/.circleci/src/workflows/adventures.yml +49 -0
  14. data/.circleci/src/workflows/adventures.yml.tt +11 -0
  15. data/.circleci/src/workflows/gem-release.yml +9 -0
  16. data/.circleci/src/workflows/rubies.yml +13 -0
  17. data/.circleci/src/workflows/rubies.yml.tt +14 -0
  18. data/.harvest/cases.yml +39 -0
  19. data/.harvest/structure_choices.yml +73 -0
  20. data/.harvest/structure_human.yml +73 -0
  21. data/.harvest.yml +40 -0
  22. data/.idea/markdown.xml +9 -0
  23. data/.idea/roro.iml +380 -77
  24. data/.idea/runConfigurations/_template__of_Test__Unit_Shoulda_Minitest.xml +41 -0
  25. data/.idea/runConfigurations/ci_prepare.xml +36 -0
  26. data/.idea/runConfigurations/ci_test_adventures.xml +39 -0
  27. data/.idea/runConfigurations/ci_test_rubies.xml +36 -0
  28. data/.idea/runConfigurations/generate_annotations.xml +17 -0
  29. data/.idea/runConfigurations/test_adventures.xml +40 -0
  30. data/.idea/runConfigurations/test_all.xml +40 -0
  31. data/.idea/runConfigurations/test_tasks.xml +40 -0
  32. data/.idea/runConfigurations/test_test.xml +40 -0
  33. data/.pryrc +2 -0
  34. data/CODE_OF_CONDUCT.md +20 -25
  35. data/Gemfile.lock +183 -0
  36. data/Guardfile +11 -22
  37. data/README.md +27 -178
  38. data/Rakefile +39 -7
  39. data/cases +1 -0
  40. data/docker-compose.yml +26 -6
  41. data/lib/roro/cli/generate/generate_adventure.rb +23 -0
  42. data/lib/roro/cli/generate/generate_adventure_tests.rb +22 -0
  43. data/lib/roro/cli/generate/generate_environments.rb +1 -0
  44. data/lib/roro/cli/generate/generate_harvest.rb +42 -0
  45. data/lib/roro/cli/rollon.rb +0 -7
  46. data/lib/roro/cli.rb +18 -6
  47. data/lib/roro/common/utilities.rb +44 -13
  48. data/lib/roro/configurators/adventure_chooser.rb +4 -2
  49. data/lib/roro/configurators/adventure_picker.rb +7 -7
  50. data/lib/roro/configurators/adventure_writer.rb +194 -3
  51. data/lib/roro/configurators/catalog_builder.rb +1 -1
  52. data/lib/roro/configurators/configurator.rb +64 -8
  53. data/lib/roro/configurators/dependency_satisfier.rb +135 -136
  54. data/lib/roro/configurators/question_builder.rb +6 -6
  55. data/lib/roro/configurators/reflector.rb +225 -0
  56. data/lib/roro/configurators/structure_builder.rb +1 -0
  57. data/lib/roro/configurators/validator.rb +1 -1
  58. data/lib/roro/crypto/key_writer.rb +2 -0
  59. data/lib/roro/stacks/docker.yml +5 -0
  60. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/alpine.yml +2 -0
  61. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/docker.yml +1 -0
  62. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/git.yml +17 -0
  63. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/_builder.yml +3 -0
  64. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/laravel.yml +11 -0
  65. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/builder/Dockerfile.tt +14 -0
  66. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/builder/composer.json +7 -0
  67. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/default.conf +22 -0
  68. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/php.dockerfile.tt +43 -0
  69. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/scheduler.sh +7 -0
  70. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker-compose.yml.tt +122 -0
  71. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/partials/services/site.erb +16 -0
  72. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/_test.rb +142 -0
  73. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/composer.json +7 -0
  74. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/default.conf +22 -0
  75. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/php.dockerfile +43 -0
  76. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/scheduler.sh +7 -0
  77. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker-compose.yml +122 -0
  78. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/_builder/Dockerfile +14 -0
  79. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/_builder/composer.json +7 -0
  80. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/laravel/Dockerfile +14 -0
  81. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/laravel/composer.json +7 -0
  82. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/php/adventures}/wordpress/wordpress.yml +2 -2
  83. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/php.yml +1 -0
  84. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/_builder.yml +3 -0
  85. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/mysql.yml +26 -0
  86. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/_python_requirements.erb +2 -0
  87. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/_settings_py_databases.erb +10 -0
  88. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/services/_db.yml.erb +7 -0
  89. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/postgres.yml +5 -0
  90. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/partials/_settings_py_databases.erb +10 -0
  91. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/partials/services/_db.yml.erb +9 -0
  92. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/python/frameworks}/django/django.yml +11 -9
  93. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/builder/Dockerfile.tt +20 -0
  94. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_two → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/manifest/%interpolated_app_name%}/settings.py.tt +8 -17
  95. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/manifest}/Dockerfile.tt +8 -2
  96. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/partials/_volumes.erb +4 -0
  97. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/partials/services/_web.yml.erb +12 -0
  98. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/0/_test.rb +97 -0
  99. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/0/dummy/requirements.txt +5 -0
  100. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/_test.rb +91 -0
  101. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/dummy/requirements.txt +4 -0
  102. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/_builder.yml +3 -0
  103. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/flask.yml +8 -0
  104. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/builder/Dockerfile.tt +16 -0
  105. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/partials/services/_redis.yml.erb +3 -0
  106. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/partials/services/_web.yml.erb +5 -0
  107. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/_test.rb +74 -0
  108. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/dummy/Dockerfile +11 -0
  109. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/dummy}/docker-compose.yml +12 -3
  110. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/layers/flask/Dockerfile +11 -0
  111. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/python.yml +8 -0
  112. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/templates/manifest/docker-compose.yml.tt +9 -0
  113. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/versions/python_3_10_1/python_3_10_1.yml +5 -0
  114. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/versions/python_3_9_9/python_3_9_9.yml +5 -0
  115. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/_builder.yml +3 -0
  116. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/postgres.yml +26 -0
  117. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/partials/packages/_postgres.erb +3 -0
  118. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/partials/services/_db.erb +7 -0
  119. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/versions/postgres_13_5/postgres_13_5.yml +4 -0
  120. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/versions/postgres_14_1/postgres_14_1.yml +4 -0
  121. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/sqlite.yml +8 -0
  122. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/templates/partials/packages/_sqlite.erb +3 -0
  123. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/templates/partials/services/_db.erb +9 -0
  124. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases.yml +33 -0
  125. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/rails.yml +14 -0
  126. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/resque/resque.yml +1 -0
  127. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/sidekiq/sidekiq.yml +1 -0
  128. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/builder}/Dockerfile.tt +5 -6
  129. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest/Dockerfile.tt +20 -0
  130. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest/docker-compose.yml.tt +7 -0
  131. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/packages/_base.erb +7 -0
  132. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/services/_app.erb +17 -0
  133. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/shared/_env_file.erb +3 -0
  134. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/volumes/_base.erb +3 -0
  135. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/rails_6_1.yml +12 -0
  136. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/templates/partials/_packages_adventure.erb +8 -0
  137. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/_test.rb +71 -0
  138. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/Gemfile +56 -0
  139. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/config/environments/production.rb +120 -0
  140. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/docker-compose.yml +32 -0
  141. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/layers/_builder/Dockerfile +41 -0
  142. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/layers/rails/Dockerfile +37 -0
  143. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/_test.rb +94 -0
  144. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/Dockerfile +37 -0
  145. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/Gemfile +56 -0
  146. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/config/environments/production.rb +120 -0
  147. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/docker-compose.yml +33 -0
  148. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/rails_7_0.yml +10 -0
  149. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/_test.rb +90 -0
  150. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/Dockerfile +29 -0
  151. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/Gemfile +72 -0
  152. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/config/database.yml +25 -0
  153. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/idiot/Dockerfile +29 -0
  154. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/idiot/docker-compose.yml +33 -0
  155. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/config/database.yml +25 -0
  156. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/docker-compose.yml +34 -0
  157. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/mise/env/base.env +19 -0
  158. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/_test.rb +61 -0
  159. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/Dockerfile +29 -0
  160. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/Gemfile +72 -0
  161. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/config/database.yml +25 -0
  162. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/idiot/Dockerfile +29 -0
  163. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/idiot/docker-compose.yml +33 -0
  164. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/config/database.yml +25 -0
  165. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/docker-compose.yml +34 -0
  166. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/mise/env/base.env +19 -0
  167. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/_test.rb +76 -0
  168. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy/Dockerfile +29 -0
  169. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/Gemfile +22 -16
  170. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy/docker-compose.yml +33 -0
  171. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/Dockerfile +29 -0
  172. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot}/Gemfile +22 -16
  173. data/lib/roro/stacks/{stories_v1/templates/rails/config/database.pg.yml → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/config/database.yml} +2 -2
  174. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/docker-compose.yml +33 -0
  175. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/_builder/Dockerfile +34 -0
  176. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/Dockerfile +29 -0
  177. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/Gemfile +72 -0
  178. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/config/database.yml +19 -0
  179. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/_test.rb +81 -0
  180. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/Dockerfile +29 -0
  181. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/Gemfile +72 -0
  182. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/config/database.yml +19 -0
  183. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/docker-compose.yml +33 -0
  184. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/_builder/Dockerfile +34 -0
  185. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/rails/config/database.yml +19 -0
  186. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/_test.rb +80 -0
  187. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/Dockerfile +29 -0
  188. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/Gemfile +72 -0
  189. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/config/database.yml +19 -0
  190. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/docker-compose.yml +33 -0
  191. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/_builder/Dockerfile +34 -0
  192. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/Dockerfile +29 -0
  193. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/Gemfile +72 -0
  194. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/config/database.yml +19 -0
  195. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/_test.rb +82 -0
  196. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/Dockerfile +29 -0
  197. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/Gemfile +72 -0
  198. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/config/database.yml +19 -0
  199. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/docker-compose.yml +33 -0
  200. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/_builder/Dockerfile +34 -0
  201. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/Dockerfile +29 -0
  202. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/Gemfile +72 -0
  203. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/config/database.yml +19 -0
  204. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/ruby_gem/ruby_gem.yml +1 -0
  205. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/ruby_gem/templates/stage_one/.gitignore +56 -0
  206. data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/okonomi/languages/ruby/ruby.yml +1 -1
  207. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/versions/ruby_2_7/ruby_2_7.yml +4 -0
  208. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/versions/ruby_3_0/ruby_3_0.yml +6 -0
  209. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/okonomi.yml +8 -0
  210. data/lib/roro/stacks/unstoppable_developer_styles/okonomi/templates/manifest/.dockerignore.tt +32 -0
  211. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/.env +1 -1
  212. data/lib/roro/stacks/unstoppable_developer_styles/omakase/frameworks/wordpress/test/0/_test.rb +12 -0
  213. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/wordpress/wordpress.yml +3 -3
  214. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/circleci.yml +31 -0
  215. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/partials/_ignores.erb +9 -0
  216. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/.circleci/config.yml.tt +45 -0
  217. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/Dockerfile +3 -0
  218. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/index.html +7 -0
  219. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s/app-deployment.yml.tt +23 -0
  220. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s/app-service.yml.tt +15 -0
  221. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-role-binding.yml +13 -0
  222. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-role.yml +9 -0
  223. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-service-account.yml +5 -0
  224. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/scripts/ci-deploy.sh.tt +23 -0
  225. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/test/0/_test.rb +57 -0
  226. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/devops.yml +1 -0
  227. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/kubernetes.yml +1 -0
  228. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/ingress.yml +2 -0
  229. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/nginx.yml +1 -0
  230. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test/0/_test.rb +15 -0
  231. data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/env-configmap.yaml.tt +1 -1
  232. data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/rails/test/0/_test.rb +15 -0
  233. data/lib/roro/templates/adventure/%adventure_name%.yml.tt +5 -0
  234. data/lib/roro/templates/adventure/test/0/_test.rb.tt +8 -0
  235. data/lib/roro/templates/adventure_test/_test.rb.tt +31 -0
  236. data/lib/roro/version.rb +1 -1
  237. data/lib/roro.rb +9 -2
  238. data/mise/containers/ruby_gem/Dockerfile +25 -12
  239. data/mise/containers/ruby_gem/Dockerfile-ubuntu +13 -0
  240. data/mise/logs/cases.yml +235 -0
  241. data/mise/logs/getsome.yml +204 -0
  242. data/mise/logs/itineraries.yml +235 -0
  243. data/mise/logs/reflector.yml +204 -0
  244. data/mise/scripts/ci/jobs/run.sh +6 -0
  245. data/mise/scripts/rollon/build_app.sh +7 -0
  246. data/mise/scripts/rollon/down.sh +9 -0
  247. data/mise/scripts/rollon/git_commit.sh +8 -0
  248. data/mise/scripts/rollon/image_build.sh +7 -0
  249. data/mise/scripts/rollon/image_push.sh +8 -0
  250. data/mise/scripts/rollon/prune.sh +3 -0
  251. data/mise/scripts/rollon/reset_sandbox.sh +13 -0
  252. data/mise/scripts/rollon/run.sh +16 -0
  253. data/mise/scripts/rollon-pull.sh +37 -0
  254. data/mise/scripts/rollon.sh +26 -0
  255. data/rakelib/ci/prepare/config/pack.rake +15 -0
  256. data/rakelib/ci/prepare/config/process.rake +12 -0
  257. data/rakelib/ci/prepare/config/validate.rake +13 -0
  258. data/rakelib/ci/prepare/config.rake +8 -0
  259. data/rakelib/ci/prepare/workflows/adventures.rake +70 -0
  260. data/rakelib/ci/prepare/workflows/rubies.rake +15 -0
  261. data/rakelib/ci/prepare.rake +11 -0
  262. data/rakelib/ci/test/adventures.rake +18 -0
  263. data/rakelib/ci/test/rubies.rake +12 -0
  264. data/rakelib/ci/update.rake +6 -0
  265. data/rakelib/club/harvest.rake +9 -0
  266. data/rakelib/docker/image/build.rake +8 -0
  267. data/rakelib/test/annotate.rake +16 -0
  268. data/roro.gemspec +19 -17
  269. metadata +383 -296
  270. data/.circleci/setup-gem-credentials.sh +0 -3
  271. data/.travis.yml +0 -7
  272. data/lib/roro/configurators/adventure_case_builder.rb +0 -65
  273. data/lib/roro/configurators/utilities.rb +0 -188
  274. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/fatsufodo.yml +0 -1
  275. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/_django.yml +0 -7
  276. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one/docker-compose.yml.tt +0 -20
  277. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one/requirements.txt.tt +0 -2
  278. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_one/stage_one_test.rb +0 -37
  279. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/expressjs.yml +0 -8
  280. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/templates/stage_one/Dockerfile.tt +0 -14
  281. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/templates/stage_one/docker-compose.yml.tt +0 -21
  282. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/flask.yml +0 -14
  283. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one/requirements.txt +0 -2
  284. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one/stage_test.rb +0 -37
  285. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/rails/rails.yml +0 -12
  286. data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/rails/templates/stage_one/docker-compose.yml.tt +0 -9
  287. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/python/python.yml +0 -10
  288. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one/stage_test.rb +0 -42
  289. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/rails.yml +0 -36
  290. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/6_1.yml +0 -44
  291. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/.env +0 -6
  292. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/Dockerfile.tt +0 -28
  293. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/config/initializers/sidekiq.rb +0 -13
  294. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/docker-compose.yml.tt +0 -57
  295. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/entrypoints/sidekiq-entrypoint.sh +0 -9
  296. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_test.rb +0 -38
  297. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/7_0.yml +0 -38
  298. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/.env +0 -6
  299. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/Dockerfile.tt +0 -28
  300. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/config/initializers/sidekiq.rb +0 -13
  301. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/docker-compose.yml.tt +0 -57
  302. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints/docker-entrypoint.sh +0 -9
  303. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints/sidekiq-entrypoint.sh +0 -9
  304. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_test.rb +0 -37
  305. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/okonomi.yml +0 -4
  306. data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/templates/stage_one/.dockerignore +0 -18
  307. data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/Dockerfile.tt +0 -16
  308. data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/Gemfile.tt +0 -2
  309. data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/entrypoint.sh +0 -8
  310. data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_two/database.yml.tt +0 -16
  311. data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one/stage_test.rb +0 -32
  312. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test/stage_one/stage_test.rb +0 -32
  313. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/.env +0 -4
  314. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/.gitignore +0 -55
  315. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one/stage_test.rb +0 -33
  316. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/roll_your_own.yml +0 -24
  317. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/%interpolated_story_name%.yml.tt +0 -10
  318. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one/stage_test.rb.tt +0 -41
  319. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/.gitignore.tt +0 -55
  320. data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/test/stage_one/stage_one_test.rb +0 -64
  321. data/lib/roro/stacks/library/roro/.keep +0 -0
  322. data/lib/roro/stacks/library/roro/docker_compose/docker-compose.yml +0 -22
  323. data/lib/roro/stacks/library/roro/k8s/k8s.yml +0 -15
  324. data/lib/roro/stacks/library/roro/plots/node/.keep +0 -0
  325. data/lib/roro/stacks/library/roro/plots/node/node.yml +0 -22
  326. data/lib/roro/stacks/library/roro/plots/php/.keep +0 -0
  327. data/lib/roro/stacks/library/roro/plots/php/php.yml +0 -22
  328. data/lib/roro/stacks/library/roro/plots/python/plots/django/.keep +0 -0
  329. data/lib/roro/stacks/library/roro/plots/python/plots/django/django.yml +0 -10
  330. data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/Dockerfile +0 -7
  331. data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/docker-compose.yml +0 -20
  332. data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/requirements.txt +0 -2
  333. data/lib/roro/stacks/library/roro/plots/python/plots/flask/flask.yml +0 -0
  334. data/lib/roro/stacks/library/roro/plots/python/python.yml +0 -1
  335. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/.keep +0 -0
  336. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/mysql.yml +0 -22
  337. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/postgres.yml +0 -22
  338. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails/rails.yml +0 -22
  339. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails/templates/.keep +0 -0
  340. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_react/rails_react.yml +0 -22
  341. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_react/templates/.keep +0 -0
  342. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_vue/rails_vue.yml +0 -22
  343. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_vue/templates/.keep +0 -0
  344. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/rails.yml +0 -16
  345. data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/templates/.keep +0 -0
  346. data/lib/roro/stacks/library/roro/plots/ruby/plots/ruby_gem/ruby_gem.yml +0 -22
  347. data/lib/roro/stacks/library/roro/plots/ruby/ruby.yml +0 -22
  348. data/lib/roro/stacks/library/roro/roro/roro.yml +0 -15
  349. data/lib/roro/stacks/stories_v1/greenfield/rails.yml +0 -9
  350. data/lib/roro/stacks/stories_v1/greenfield/roro.yml +0 -7
  351. data/lib/roro/stacks/stories_v1/greenfield.yml +0 -1
  352. data/lib/roro/stacks/stories_v1/rollon/rails/ci_cd/circleci.yml +0 -2
  353. data/lib/roro/stacks/stories_v1/rollon/rails/ci_cd.yml +0 -1
  354. data/lib/roro/stacks/stories_v1/rollon/rails/database/mysql.yml +0 -17
  355. data/lib/roro/stacks/stories_v1/rollon/rails/database/postgresql.yml +0 -15
  356. data/lib/roro/stacks/stories_v1/rollon/rails/database.yml +0 -9
  357. data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql/default.yml +0 -1
  358. data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql/edge.yml +0 -1
  359. data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql.yml +0 -10
  360. data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes.yml +0 -1
  361. data/lib/roro/stacks/stories_v1/rollon/rails.yml +0 -76
  362. data/lib/roro/stacks/stories_v1/rollon/roro.yml +0 -5
  363. data/lib/roro/stacks/stories_v1/rollon/ruby_gem.yml +0 -5
  364. data/lib/roro/stacks/stories_v1/rollon.yml +0 -42
  365. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/.keep +0 -0
  366. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/config.yml.tt +0 -11
  367. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_build.yml +0 -14
  368. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_push.yml +0 -11
  369. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_test.yml +0 -12
  370. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/setup-gem-credentials.sh +0 -3
  371. data/lib/roro/stacks/stories_v1/templates/rails/.circleci/workflows/_build_test_push.yml +0 -12
  372. data/lib/roro/stacks/stories_v1/templates/rails/.keep +0 -0
  373. data/lib/roro/stacks/stories_v1/templates/rails/Dockerfile.greenfield.tt +0 -51
  374. data/lib/roro/stacks/stories_v1/templates/rails/config/database.mysql.yml +0 -19
  375. data/lib/roro/stacks/stories_v1/templates/rails/database/with_mysql/_service.yml +0 -10
  376. data/lib/roro/stacks/stories_v1/templates/rails/database/with_postgresql/.keep +0 -0
  377. data/lib/roro/stacks/stories_v1/templates/rails/database/with_postgresql/_service.yml +0 -7
  378. data/lib/roro/stacks/stories_v1/templates/rails/docker-compose.yml.tt +0 -59
  379. data/lib/roro/stacks/stories_v1/templates/rails/dotenv/.keep +0 -0
  380. data/lib/roro/stacks/stories_v1/templates/rails/dotenv/database.mysql.env.tt +0 -6
  381. data/lib/roro/stacks/stories_v1/templates/rails/dotenv/database.pg.env.tt +0 -4
  382. data/lib/roro/stacks/stories_v1/templates/rails/dotenv/web.env.tt +0 -2
  383. data/lib/roro/stacks/stories_v1/templates/rails/kube.rake.tt +0 -114
  384. data/lib/roro/stacks/stories_v1/templates/rails/roro/.keep +0 -0
  385. data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/.keep +0 -0
  386. data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/app/.keep +0 -0
  387. data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/app/Dockerfile.tt +0 -34
  388. data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/frontend/.keep +0 -0
  389. data/lib/roro/stacks/stories_v1/templates/rails/roro/docker-entrypoint.sh +0 -8
  390. data/lib/roro/stacks/stories_v1/templates/rails/roro/keys/.keep +0 -0
  391. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/.keep +0 -0
  392. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/certificate.yml.tt +0 -0
  393. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/cluster-issuer.yml.tt +0 -0
  394. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployment.yml.tt +0 -50
  395. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/postgres_deploy.yaml +0 -47
  396. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/rails_deploy.yaml +0 -62
  397. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/redis_deploy.yaml +0 -23
  398. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/sidekiq_deploy.yaml +0 -56
  399. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/ingress.yml.tt +0 -0
  400. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/ingresses/ingress.yaml +0 -13
  401. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/job-migrate.yml.tt +0 -0
  402. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/jobs/setup.yaml +0 -42
  403. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/secret-digital-ocean.yml.tt +0 -4
  404. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/service.yml.tt +0 -10
  405. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/postgres_svc.yaml +0 -13
  406. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/rails_svc.yaml +0 -13
  407. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/redis_svc.yaml +0 -13
  408. data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/volumes/postgres_volumes.yaml +0 -25
  409. data/lib/roro/stacks/stories_v1/templates/roro/containers/.keep +0 -0
  410. data/lib/roro/stacks/stories_v1/templates/roro/containers/database/env/.keep +0 -0
  411. data/lib/roro/stacks/stories_v1/templates/roro/containers/database/scripts/.keep +0 -0
  412. data/lib/roro/stacks/stories_v1/templates/roro/env/.keep +0 -0
  413. data/lib/roro/stacks/stories_v1/templates/roro/keys/.keep +0 -0
  414. data/lib/roro/stacks/stories_v1/templates/roro/scripts/.keep +0 -0
  415. data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/bundler.sh +0 -22
  416. data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/git.sh +0 -21
  417. data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/rvm.sh +0 -38
  418. data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/utilities.sh +0 -53
  419. data/lib/roro/stacks/stories_v1/templates/roro/scripts/base.sh +0 -6
  420. data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/clone_idea.sh +0 -14
  421. data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/clone_repos.sh +0 -33
  422. data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/install_correct_bundler.sh +0 -21
  423. data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/install_rubies.sh +0 -6
  424. data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize.sh +0 -18
  425. data/lib/roro/stacks/stories_v1/templates/roro/scripts/roro.sh +0 -15
  426. data/lib/roro/stacks/stories_v1/templates/roro/scripts/source.sh +0 -28
  427. data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/bundle_all.sh +0 -12
  428. data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/git_pull_all.sh +0 -15
  429. data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/rvm_install_all.sh +0 -12
  430. data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/yarn_install_all.sh +0 -10
  431. data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/.keep +0 -0
  432. data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/config.yml.tt +0 -16
  433. data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/jobs/_test.yml +0 -4
  434. data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/setup-gem-credentials.sh +0 -3
  435. data/lib/roro/stacks/stories_v1/templates/ruby_gem/docker-compose.yml +0 -15
  436. data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/.keep +0 -0
  437. data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +0 -16
  438. data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +0 -1
  439. data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/keys/.keep +0 -0
  440. data/mise/containers/backend/env/.keep +0 -0
  441. data/mise/containers/backend/scripts/.keep +0 -0
  442. data/mise/containers/database/env/.keep +0 -0
  443. data/mise/containers/database/scripts/.keep +0 -0
  444. data/mise/containers/frontend/env/.keep +0 -0
  445. data/mise/containers/frontend/scripts/.keep +0 -0
  446. data/mise/containers/ruby_gem/Dockerfile-app +0 -51
  447. data/mise/containers/ruby_gem/Dockerfile-ruby_gem +0 -16
  448. /data/{.circleci → lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel}/.keep +0 -0
  449. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_one/dummy → unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest}/.keep +0 -0
  450. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_two/dummy → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/templates/manifest}/.keep +0 -0
  451. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/templates/partials}/.keep +0 -0
  452. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/php/adventures}/wordpress/templates/stage_one/docker-compose.yml.tt +0 -0
  453. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/test/0}/.keep +0 -0
  454. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django}/.keep +0 -0
  455. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/manifest}/.keep +0 -0
  456. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/manifest}/.keep +0 -0
  457. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/dummy}/.keep +0 -0
  458. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one/Dockerfile → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/manifest/Dockerfile.tt} +0 -0
  459. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/manifest}/app.py +0 -0
  460. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one → unstoppable_developer_styles/okonomi/languages/python/templates/manifest}/.keep +0 -0
  461. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/manifest}/config/database.yml +0 -0
  462. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/resque/templates/manifest}/.keep +0 -0
  463. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/sidekiq/templates/manifest}/.keep +0 -0
  464. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest}/entrypoints/docker-entrypoint.sh +0 -0
  465. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/entrypoints → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/templates/stage_one}/.keep +0 -0
  466. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy}/.keep +0 -0
  467. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy}/.keep +0 -0
  468. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/templates/partials}/.keep +0 -0
  469. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/templates/stage_one}/.keep +0 -0
  470. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/.keep +0 -0
  471. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/config/database.yml +0 -0
  472. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy}/.keep +0 -0
  473. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/rails/templates/stage_one/Gemfile.lock.tt → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/postgres/config/database.yml} +0 -0
  474. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy}/.keep +0 -0
  475. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy}/.keep +0 -0
  476. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/rails.yml +0 -0
  477. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Dockerfile.tt +0 -0
  478. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Gemfile.lock.tt +0 -0
  479. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Gemfile.tt +0 -0
  480. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/docker-compose.yml.tt +0 -0
  481. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/entrypoint.sh +0 -0
  482. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_two/database.yml.tt +0 -0
  483. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/.keep +0 -0
  484. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/LICENSE +0 -0
  485. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/README.md +0 -0
  486. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/build.sh +0 -0
  487. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/cfg/nginx-custom-configs.conf +0 -0
  488. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/cfg/nginx-wp-hardening.conf +0 -0
  489. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/tpl/nginx-http.conf.template +0 -0
  490. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/tpl/nginx-https.conf.example +0 -0
  491. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/php.conf.ini +0 -0
  492. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/data/certbot/conf/.placeholder +0 -0
  493. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/data/certbot/www/.placeholder +0 -0
  494. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-build.yml +0 -0
  495. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-dev.yml +0 -0
  496. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-prod.yml +0 -0
  497. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/dump_mysql.sh +0 -0
  498. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/init_letsencrypt.sh +0 -0
  499. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/mysql-dumps/.placeholder +0 -0
  500. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/push.sh +0 -0
  501. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress/Dockerfile +0 -0
  502. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress/adduser.sh +0 -0
  503. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress-sql/.placeholder +0 -0
  504. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress-src/.placeholder +0 -0
  505. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/test}/.keep +0 -0
  506. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one/stage_dummy → unstoppable_developer_styles/omakase/frameworks/wordpress/test/0/dummy}/.keep +0 -0
  507. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/omakase/omakase.yml +0 -0
  508. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1/.keep → unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/.gitignore} +0 -0
  509. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test → unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/test/0/dummy}/.keep +0 -0
  510. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/cert-manager.yml → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/cert_manager.yml} +0 -0
  511. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_2/echo_ingress.yaml.tt +0 -0
  512. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_3/echo_ingress.yaml.tt +0 -0
  513. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_3/ingress_nginx_svc.yaml.tt +0 -0
  514. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates}/stage_one/.keep +0 -0
  515. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo1.yaml +0 -0
  516. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo2.yaml +0 -0
  517. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo_ingress.yaml.tt +0 -0
  518. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/prod_issuer.yaml.tt +0 -0
  519. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/staging_issuer.yaml.tt +0 -0
  520. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test/stage_one/stage_dummy → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test}/.keep +0 -0
  521. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test/0/dummy}/.keep +0 -0
  522. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/rails.yml +0 -0
  523. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/k8s → unstoppable_developer_styles/sashimi/frameworks/rails/templates/stage_one}/.keep +0 -0
  524. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/docker-compose.yml.tt +0 -0
  525. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test → unstoppable_developer_styles/sashimi/frameworks/rails/templates/stage_one/k8s}/.keep +0 -0
  526. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/app-deployment.yaml.tt +0 -0
  527. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/app-service.yaml.tt +0 -0
  528. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/database-deployment.yaml.tt +0 -0
  529. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/database-service.yaml.tt +0 -0
  530. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/db-data-persistentvolumeclaim.yaml.tt +0 -0
  531. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/redis-deployment.yaml.tt +0 -0
  532. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/redis-service.yaml.tt +0 -0
  533. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/secret.yaml.tt +0 -0
  534. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/sidekiq-deployment.yaml.tt +0 -0
  535. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one → unstoppable_developer_styles/sashimi/frameworks/rails/test}/.keep +0 -0
  536. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one/stage_dummy → unstoppable_developer_styles/sashimi/frameworks/rails/test/0/dummy}/.keep +0 -0
  537. /data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/sashimi/sashimi.yml +0 -0
  538. /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/templates/stage_one → templates/adventure}/.keep +0 -0
  539. /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test → templates/adventure/templates/manifest}/.keep +0 -0
  540. /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one → templates/adventure/test/0/dummy}/.keep +0 -0
  541. /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one/stage_dummy → templates/adventure_test/dummy}/.keep +0 -0
  542. /data/{lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/test/stage_one/dummy → mise/env}/.keep +0 -0
data/README.md CHANGED
@@ -1,40 +1,23 @@
1
1
  # RoRo
2
2
 
3
- RoRo is a set of tools and stories for building, running continuous integration tests on, and deploying your containerized projects. It aims to provide everything you need to:
3
+ RoRo is a CLI that runs best in a container and which you can use to:
4
4
 
5
- 1. Greenfield a new project with a containerized app and database and other containers you might need.
6
- 2. Containerize your project's existing application, database, and services.
7
- 3. Roll your project into ci/cd.
8
- 4. Roll your project onto production servers with kubernetes.
5
+ 1. Roll your own greenfield app into a container.
6
+ 2. Roll it off your container and onto your dev box.
7
+ 3. Roll it off your dev box and onto source control.
8
+ 4. Roll it off source control and onto ci/cd.
9
+ 5. Roll it off ci/cd and onto your image repository.
10
+ 6. Roll it off your image repository and onto your production servers.
9
11
 
10
- ## Getting started
11
-
12
- ### Install
12
+ You can also use it to safely manage and expose your environment variables in the containers and environmens that need them.
13
13
 
14
- RoRo can be installed
15
- ```bash
16
- $ gem install roro
17
- ```
14
+ ## Demo
18
15
 
19
- Once installed, RoRo provides a CLI:
20
-
21
- ```bash
22
- $ roro --help
23
- Commands:
24
- roro expose # Expose encrypted files
25
- roro generate_key # Generate a key for each environment
26
- roro generate_keys # Generates keys for all environments. If you have .en...
27
- roro omakase # Greenfield a brand new rails backend using Docker's inst...
28
- roro help [COMMAND] # Describe available commands or one specific command
29
- roro obfuscate # obfuscates any files matching the pattern ./docker/*...
30
- roro rollon # Generates files necessary to omakase a new backend wi...
31
- roro ruby_gem # Generate files for containerized gem testing, Circle...
32
- ```
33
-
34
- However to use RoRo
16
+ [Here you go](https://www.youtube.com/watch?v=-BxJuUQk1XI)
35
17
 
18
+ ## Getting started
36
19
 
37
- ### Docker and Docker Compose
20
+ ### Check your Docker and Docker Compose Dependencies:
38
21
 
39
22
  You'll need [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/). To confirm Docker is installed:
40
23
 
@@ -50,170 +33,36 @@ $ docker-compose -v
50
33
  docker-compose version 1.21.0, build 5920eb0
51
34
  ```
52
35
 
53
- ### Greenfielding a dockerized app
54
-
55
- ```bash
56
- $ mkdir -p handsome_app
57
- $ cd handsome_app
58
- $ roro omakase
59
- ```
60
-
61
- It'll take a few minutes for Docker to download your images, copy your files, and build your application but once finished, you'll see the Rails welcome screen at [http://localhost:3000](http://localhost:3000/).
62
-
63
- ### Rolling onto an existing app
36
+ ### Greenfield a new app:
64
37
 
65
- Whether using your own app or one greenfielded using instructions above, first shut down any running docker containers:
38
+ 1. Most RoRo adventures will copy files from their container and onto your host machine. To avoid making a mess, make a new directory and navigate into it:
66
39
 
67
40
  ```bash
68
- $ docker-compose down
41
+ $ mkdir -p greenfield
42
+ $ cd greenfield
69
43
  ```
70
44
 
71
- Then, roll RoRo on:
45
+ 2. Use the RoRo CLI to generate a greenfield app inside the RoRo container and then copy it onto your development machine:
72
46
 
73
- ```bash
74
- $ roro rollon
47
+ ```shell
48
+ docker run \
49
+ --name artifact \
50
+ -v $PWD:/artifact \
51
+ -v /var/run/docker.sock:/var/run/docker.sock \
52
+ -u 0 \
53
+ -it handsomefencer/roro:latest roro rollon
75
54
  ```
76
55
 
77
- If your host machine runs a flavor of linux, ensure its logged in user owns the generated files:
56
+ ### Note for Linux users
57
+ Once you've rolled your greenfielded app out of the RoRo container and onto your development machine, you'll want to establish ownership of them
78
58
 
79
59
  ```bash
80
60
  $ sudo chown <username><user group> -R .
81
61
  ```
82
62
 
83
- And spin it up:
84
-
85
- ```bash
86
- $ docker-compose up --build
87
- ```
88
-
89
- As with greenfielding above, wait a few minutes, and when it's finished, open [http://localhost:3000/](http://localhost:3000/).
90
-
91
-
92
- ### Guard and tests
93
-
94
- From another terminal:
95
-
96
- ```bash
97
- $ docker-compose exec backend bundle exec guard
98
- ```
99
-
100
- To use LiveReoload with Guard, install the Chrome [extension](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en):
101
-
102
-
103
- ## Deployment
104
-
105
- ### Securing environment files
106
-
107
- Roro provides conventions for securing sensitive variables between docker containers and environments. To store a variable for use in development, create a file with that variable inside, name it "development.env," and store it in docker/env_files. Here's a one-liner:
108
-
109
- ```bash
110
- $ echo "export EXAMPLE_KEY=example_value" > docker/env_files/development.env
111
- ```
112
-
113
- Next, generate a key for the development environment:
114
-
115
- ```bash
116
- $ roro generate_key development
117
- ```
118
-
119
- Then encrypt the development.env file using the previously generated development key:
120
-
121
- ```bash
122
- $ roro obfuscate development
123
- ```
124
-
125
- You should now have the environment file and its encrypted counterpart:
126
-
127
- ```bash
128
- $ ls docker/env_files
129
- development.env development.env.enc
130
- ```
131
-
132
- To see how decryption works, first back up a copy of your development.env file:
133
-
134
- ```bash
135
- $ mv docker/env_files/development.env docker/env_files/backup.env
136
- ```
137
-
138
- Then expose its encrypted counterpart:
139
-
140
- ```bash
141
- $ roro expose development
142
- ```
143
-
144
- You should now have three files:
145
-
146
- ```bash
147
- $ ls docker/env_files
148
- backup.env development.env development.env.enc
149
- ```
150
-
151
- To verify the newly decrypted file's contents match those of its backup:
152
-
153
- ```bash
154
- $ diff docker/env_files/development.env docker/env_files/backup.env
155
- ```
156
-
157
- ## Notes
158
-
159
- ### Linux
160
-
161
- If you're running linux you may need to change ownership of the newly created files, prepend commands with sudo, or both. To change ownership of newly generated files:
162
-
163
- ```bash
164
- $ sudo chown <username><user group> -R .
165
- ```
166
-
167
- If that doesn't work, Docker's [documentation](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) should get you pointed in the right direction.
168
-
169
- ### Troubleshooting
170
-
171
- #### Port in use
172
-
173
- Sometimes you will ge a message saying the port specified in your docker-compose.yml file is already in use. This may be because you have a server running on your host from normal development, or because another Docker container is running a server and piping it to your host. If the former you can shut it down using ctrl^c, and if the latter:
174
-
175
- ```
176
- $ docker-compose down
177
- ```
178
-
179
- Sometimes shutting down all servers isn't enough because a .pid file remains. You can usually remove it with:
180
-
181
- ```bash
182
- $ rm /tmp/pids/server.pid
183
- ```
184
-
185
- If that doesn't work, restart your machine.
186
-
187
- #### Mismatched ruby versions
188
-
189
- Sometimes your Gemfile will specify a ruby version which doesn't match the ruby version of the image your container is using. There are three ways to handle this. The first way is to specify an image with the same version of ruby as is in your Gemfile. Open your Dockerfile and change:
190
-
191
- ```
192
- FROM ruby:2.5
193
- ```
194
- to:
195
- ```
196
- FROM ruby:2.5.x
197
- ```
198
- ...where 2.5.x is the ruby specified in your Gemfile. The second way is to specify the same version of ruby in your app container's image as at the top of your Gemfile:
199
-
200
- ```ruby
201
- ruby '2.5.x'
202
- ```
203
-
204
- The third way is to remove the ruby specification from your Gemfile, relying on your Dockerfile for ruby version management.
205
-
206
- #### Get out of jail
207
-
208
- To remove all images, containers, and volumes from your system and start over:
209
-
210
- ```bash
211
- $ docker system prune -af --volumes
212
- ```
213
-
214
63
  ## Contributing
215
64
 
216
- This gem and its associated practices are just one way of using these tools and not the canonical way. My purpose in publishing it is to get a conversation started about what conventions around these tools might look like. If you have ideas on how to make it better please put in an issue -- or fork the repo, make your changes, write your tests, and send me a pull request. It'll make me feel warm inside.
65
+ I can definitely use some help and if you have any thoughts about this, please open an issue.
217
66
 
218
67
  ## License
219
68
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -1,10 +1,42 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+ require 'json'
4
+ require 'yaml'
5
+ require 'roro'
3
6
 
4
- Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
7
+ Rake.add_rakelib 'rakelib/ci'
8
+ Rake.add_rakelib 'rakelib/ci/config'
9
+ Rake.add_rakelib 'rakelib/ci/matrices/run'
10
+ Rake.add_rakelib 'rakelib/ci/matrices/test_rollon'
11
+ Rake.add_rakelib 'rakelib/ci/matrices/test_rubies'
12
+ Rake.add_rakelib 'rakelib/ci/prepare/config'
13
+ Rake.add_rakelib 'rakelib/ci/prepare/workflows'
14
+ Rake.add_rakelib 'rakelib/ci/prepare'
15
+ Rake.add_rakelib 'rakelib/ci/test'
16
+ Rake.add_rakelib 'rakelib/ci/jobs'
17
+ Rake.add_rakelib 'rakelib/test'
18
+ Rake.add_rakelib 'rakelib/fixtures'
19
+ Rake.add_rakelib 'rakelib/fixtures/matrixes'
20
+ Rake.add_rakelib 'rakelib/docker/image'
21
+ Rake.add_rakelib 'rakelib/club'
22
+ Rake.add_rakelib 'rakelib/club/harvest'
23
+
24
+ Rake::TestTask.new('test') do |t|
25
+ t.libs << 'test'
26
+ # t.libs << "lib"
27
+ t.test_files = FileList['test/**/*_test.rb']
28
+ .exclude('test/fixtures/dummies/**/*')
8
29
  end
9
30
 
10
- task :default => :test
31
+ # Rake::TestTask.new('test') do |t|
32
+ # t.libs << "test"
33
+ # t.libs << "lib"
34
+ # t.test_files = FileList["./**/*/_test.rb"]
35
+ # .exclude('test/fixtures/dummies/test_annotate/**/*')
36
+ # end
37
+
38
+ # Rake::TestTask.new('test:stacks') do |t|
39
+ # t.libs << "test"
40
+ # t.libs << "lib"
41
+ # t.test_files = FileList["./lib/roro/stacks/**/*_test.rb"]
42
+ # end
data/cases ADDED
@@ -0,0 +1 @@
1
+ ---
data/docker-compose.yml CHANGED
@@ -1,15 +1,35 @@
1
- version: '3.2'
1
+ version: '3.5'
2
2
 
3
3
  services:
4
4
 
5
5
  ruby_gem:
6
+ image: handsomefencer/roro
6
7
  build:
7
8
  context: .
8
9
  dockerfile: mise/containers/ruby_gem/Dockerfile
9
- volumes:
10
- - gem_cache:/gems
11
10
  environment:
12
- RUBY_VERSION: '2.5'
11
+ - RUBY_VERSION='2.5'
13
12
 
14
- volumes:
15
- gem_cache:
13
+ dev:
14
+ build:
15
+ context: .
16
+ dockerfile: mise/containers/ruby_gem/Dockerfile
17
+ working_dir: /usr/src
18
+ volumes:
19
+ - .:/usr/src
20
+
21
+ roro:
22
+ build:
23
+ context: .
24
+ dockerfile: mise/containers/ruby_gem/Dockerfile
25
+ image: handsomefencer/roro
26
+ guard:
27
+ build:
28
+ context: .
29
+ dockerfile: mise/containers/ruby_gem/Dockerfile
30
+ working_dir: /usr/src
31
+ volumes:
32
+ - .:/usr/src
33
+ environment:
34
+ - RAILS_ENV=development
35
+ command: bundle exec guard --no-bundler-warning
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Roro
4
+ class CLI < Thor
5
+ desc 'generate:adventure', 'Generate adventure for adventure tests.'
6
+ map 'generate:adventure' => 'generate_adventure'
7
+
8
+ method_options adventure: :string
9
+
10
+ def generate_adventure(adventure)
11
+ @env = { adventure_name: adventure.split('/').last }
12
+ location = "lib/roro/stacks/#{adventure}"
13
+ directory 'adventure', location, @env
14
+ generate_adventure_tests
15
+ end
16
+
17
+ no_commands do
18
+ def adventure_name
19
+ @env[:adventure_name]
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Roro
4
+ class CLI < Thor
5
+ desc 'generate:adventure_tests', 'Generate tests from stacks.'
6
+ map 'generate:adventure_tests' => 'generate_adventure_tests'
7
+
8
+ method_options adventure: :string
9
+
10
+ def generate_adventure_tests(kase = nil)
11
+ reflector = Roro::Configurators::Reflector.new
12
+ itineraries = reflector.itineraries
13
+
14
+ kases = kase ? [kase] : reflector.cases
15
+ kases.each_with_index do |choice, index|
16
+ @env = { adventure_title: itineraries[index].join(' & ') }
17
+ location = "test/roro/stacks/#{choice.join('/')}"
18
+ directory 'adventure_test', location, @env
19
+ end
20
+ end
21
+ end
22
+ end
@@ -13,6 +13,7 @@ module Roro
13
13
  mise = Roro::CLI.mise
14
14
  environments = args.empty? ? default_environments : args
15
15
  containers = Dir.glob("./#{mise}/containers/*").select { |f| File.directory?(f) }
16
+ create_file "./#{mise}/env/.keep", ''
16
17
  environments.each do |env|
17
18
  content = hash&.dig(env.to_sym)&.each&.map {|k,v| "#{k}=#{v[:value]}"}&.join("\n") || 'SOME_KEY=some_value'
18
19
  create_file "./#{mise}/env/#{env}.env", content
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Roro
4
+ class CLI < Thor
5
+ desc 'generate:harvest', 'Generate harvest.'
6
+ map 'generate:harvest' => 'generate_harvest'
7
+
8
+ def generate_harvest
9
+ reflector = Roro::Reflector.new
10
+ content = {
11
+ cases: reflector.cases.map { |c| c.join(' ') },
12
+ structure_human: reflector.adventure_structure_human,
13
+ structure_choices: reflector.adventure_structure_choices
14
+ # itineraries: harvest_itineraries,
15
+ # metadata: @reflector.metadata
16
+ }
17
+ content.each do |key, value|
18
+ create_file ".harvest/#{key}.yml", value.to_yaml
19
+ end
20
+ end
21
+
22
+ no_commands do
23
+ def harvest_itineraries
24
+ itineraries = {}
25
+ @reflector.itineraries.each do |i|
26
+ itineraries[harvest_adventure_title(i)] = 'blah'
27
+ end
28
+ itineraries
29
+ end
30
+
31
+ def harvest_test_files
32
+ harvest = {}
33
+ harvest[:test_files] = gather_test_files
34
+ create_file '.harvest.yml', harvest.to_yaml
35
+ end
36
+
37
+ def gather_test_files
38
+ Dir.glob("#{Dir.pwd}/lib/roro/stacks/**/*_test.rb")
39
+ end
40
+ end
41
+ end
42
+ end
@@ -9,12 +9,5 @@ module Roro
9
9
  configurator.rollon
10
10
  end
11
11
 
12
- desc 'log itineraries', 'logs all possible itineraries in specified location'
13
- map 'log_itineraries' => 'log_itineraries'
14
-
15
- def log_itineraries(location = 'test/fixtures/itineraries')
16
- builder = Roro::Configurators::AdventureCaseBuilder.new
17
- builder.log_itineraries('test/fixtures/itineraries')
18
- end
19
12
  end
20
13
  end
data/lib/roro/cli.rb CHANGED
@@ -4,6 +4,18 @@ module Roro
4
4
  class CLI < Thor
5
5
  include Thor::Actions
6
6
 
7
+ def self.supported_rubies
8
+ %w[3.0 2.7 2.6 2.5]
9
+ end
10
+
11
+ def self.test_root
12
+ "#{ENV['PWD']}/test"
13
+ end
14
+
15
+ def self.stacks
16
+ "#{File.dirname(__FILE__)}/stacks"
17
+ end
18
+
7
19
  def self.source_root
8
20
  "#{@template_root || File.dirname(__FILE__)}/templates"
9
21
  end
@@ -13,7 +25,7 @@ module Roro
13
25
  end
14
26
 
15
27
  def self.dependency_root
16
- "#{self.roro_root}/dependencies"
28
+ "#{roro_root}/dependencies"
17
29
  end
18
30
 
19
31
  def self.catalog_root
@@ -22,11 +34,11 @@ module Roro
22
34
 
23
35
  def self.mise_location
24
36
  lookup = Dir.glob("#{Dir.pwd}/**/*.roro")&.first&.split("#{Dir.pwd}/")
25
- if lookup
26
- mise = lookup.last.split('/').first
27
- else
28
- mise = 'roro'
29
- end
37
+ mise = if lookup
38
+ lookup.last.split('/').first
39
+ else
40
+ 'roro'
41
+ end
30
42
  "#{Dir.pwd}/#{mise}"
31
43
  end
32
44
 
@@ -1,27 +1,28 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'json'
3
4
  require 'yaml'
4
5
 
5
6
  module Roro
6
7
  module Utilities
7
-
8
8
  def stack_type(stack)
9
- case
10
- when stack_not_present?(stack)
9
+ if stack_not_present?(stack)
11
10
  :nonexistent
12
- when stack_is_ignored?(stack)
11
+ elsif stack_is_ignored?(stack)
13
12
  :ignored
14
- when stack_is_dotfile?(stack)
13
+ elsif stack_is_dotfile?(stack)
15
14
  :dotfile
16
- when stack_is_storyfile?(stack)
15
+ elsif stack_is_storyfile?(stack)
17
16
  :storyfile
18
- when stack_is_templates?(stack)
17
+ elsif stack_is_templates?(stack)
19
18
  :templates
20
- when stack_is_inflection?(stack)
19
+ elsif stack_is_inflection_stub?(stack)
20
+ :inflection_stub
21
+ elsif stack_is_inflection?(stack)
21
22
  :inflection
22
- when stack_is_stack?(stack)
23
+ elsif stack_is_stack?(stack)
23
24
  :stack
24
- when stack_is_story?(stack)
25
+ elsif stack_is_story?(stack)
25
26
  :story
26
27
  end
27
28
  end
@@ -56,6 +57,21 @@ module Roro
56
57
  !stack_is_dotfile?(stack)
57
58
  end
58
59
 
60
+ def stack_is_inflection_stub?(stack)
61
+ return unless stack_is_inflection?(stack)
62
+
63
+ choices = children(stack).select do |c|
64
+ stack_is_inflection?(stack) &&
65
+ !stack_is_stack?(stack) &&
66
+ !stack_is_story?(stack) &&
67
+ !stack_is_templates?(stack) &&
68
+ !stack_is_ignored?(stack) &&
69
+ !stack_is_storyfile?(stack) &&
70
+ stack_is_stack?(c) || stack_is_story?(c)
71
+ end
72
+ choices.size < 2
73
+ end
74
+
59
75
  def stack_is_inflection?(stack)
60
76
  stack_stories(stack).empty? &&
61
77
  !File.file?(stack) &&
@@ -127,7 +143,13 @@ module Roro
127
143
  end
128
144
 
129
145
  def stack_parent_path(stack)
130
- stack.split("/#{name(stack)}").first
146
+ stack.split("/#{stack_name(stack)}").first
147
+ end
148
+
149
+ def stack_is_adventure?(stack)
150
+ !stack_type(stack).eql?(:templates) &&
151
+ stack_type(stack_parent_path(stack)).eql?(:inflection) &&
152
+ %i[stack story].include?(stack_type(stack))
131
153
  end
132
154
 
133
155
  def stack_is_empty?(stack)
@@ -142,6 +164,12 @@ module Roro
142
164
  story_paths
143
165
  end
144
166
 
167
+ def sort_hash_deeply(unsorted)
168
+ sorted ||= {}
169
+ unsorted.sort.to_h.map { |k, v| sorted[k] = sort_hash_deeply(v) }
170
+ sorted
171
+ end
172
+
145
173
  def sanitize(hash)
146
174
  (hash ||= {}).transform_keys!(&:to_sym).each do |key, value|
147
175
  case value
@@ -157,7 +185,7 @@ module Roro
157
185
  end
158
186
  end
159
187
 
160
- def name(stack)
188
+ def stack_name(stack)
161
189
  stack.split('/').last
162
190
  end
163
191
 
@@ -173,7 +201,6 @@ module Roro
173
201
  stack.split('/').last
174
202
  end
175
203
 
176
-
177
204
  def sentence_from(array)
178
205
  array[1] ? "#{array[0..-2].join(', ')} and #{array[-1]}" : array[0]
179
206
  end
@@ -181,5 +208,9 @@ module Roro
181
208
  def read_yaml(yaml_file)
182
209
  JSON.parse(YAML.load_file(yaml_file).to_json, symbolize_names: true)
183
210
  end
211
+
212
+ def adventure_name(location)
213
+ "Adventure #{stack_parent(location)} #{location.split(Roro::CLI.stacks).last}" # .split('/')
214
+ end
184
215
  end
185
216
  end
@@ -11,7 +11,7 @@ module Roro
11
11
  def initialize
12
12
  @asker = AdventurePicker.new
13
13
  @itinerary = []
14
- @stack = Roro::CLI.catalog_root
14
+ @stack = Roro::CLI.stacks
15
15
  end
16
16
 
17
17
  def build_itinerary(stack=nil)
@@ -21,13 +21,15 @@ module Roro
21
21
  when :storyfile
22
22
  @manifest << stack
23
23
  when :story
24
+ @itinerary << stack.split("#{Roro::CLI.stacks}/").last
24
25
  @manifest += stack_stories(stack)
25
26
  when :stack
26
27
  @manifest += stack_stories(stack)
27
28
  children(stack).each { |c| build_itinerary(c) }
29
+ when :inflection_stub
30
+ children(stack).each { |c| build_itinerary(c) }
28
31
  when :inflection
29
32
  child = choose_adventure(stack)
30
- @itinerary << child if stack_type(child).eql?(:story)
31
33
  build_itinerary(child)
32
34
  end
33
35
  @manifest.uniq!
@@ -12,7 +12,7 @@ module Roro
12
12
  def choose_adventure(stack)
13
13
  build_inflection(stack)
14
14
  say("Rolling story on from stack: #{@stack}\n\n")
15
- say(@getsome)
15
+ say(@prompt)
16
16
  choice = ask(@inflection)
17
17
  story_name = story_from(choice.to_s)
18
18
  "#{stack}/#{story_name}"
@@ -23,13 +23,13 @@ module Roro
23
23
  prompt = inflection_prompt
24
24
  options = inflection_options
25
25
  prompt_options = humanize(options)
26
- @getsome = "#{prompt}\n"
26
+ @prompt = "#{prompt}\n"
27
27
  @inflection = ["#{prompt_options}\n\n", "Choices: [#{set_color(options.keys.map { |k| k.to_i }.join(' '), :blue)}]"]
28
28
  end
29
29
 
30
30
  def inflection_prompt
31
31
  prompt = 'Please choose from these'
32
- collection = name(@stack).gsub('_', ' ') + ":\n"
32
+ collection = stack_name(@stack).gsub('_', ' ') + ":\n"
33
33
  [prompt, stack_parent(@stack), collection].join(' ')
34
34
  end
35
35
 
@@ -37,10 +37,10 @@ module Roro
37
37
  stack ||= @stack
38
38
  Hash.new.tap do |h|
39
39
  children(stack)
40
- .map { |f| name(f) }
40
+ .map { |f| stack_name(f) }
41
41
  .sort
42
42
  .each_with_index do |c, i|
43
- h[(i + 1).to_s] = name(c)
43
+ h[(i + 1).to_s] = stack_name(c)
44
44
  end
45
45
  end
46
46
  end
@@ -55,9 +55,9 @@ module Roro
55
55
  end
56
56
 
57
57
  def get_story_preface(story)
58
- storyfile = "#{story}/#{name(story)}.yml"
58
+ storyfile = "#{story}/#{stack_name(story)}.yml"
59
59
  if stack_is_storyfile?(storyfile)
60
- read_yaml("#{story}/#{name(story)}.yml")[:preface]
60
+ read_yaml("#{story}/#{stack_name(story)}.yml")[:preface]
61
61
  else
62
62
  nil
63
63
  end