roro 0.3.2 → 0.3.8

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 (364) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -8
  3. data/Guardfile +4 -7
  4. data/lib/roro.rb +1 -1
  5. data/lib/roro/cli.rb +74 -6
  6. data/lib/roro/cli/base/base.rb +8 -0
  7. data/lib/roro/cli/base/base_files.rb +24 -0
  8. data/lib/roro/cli/base/check_dependencies.rb +98 -0
  9. data/lib/roro/cli/base/continuous_integration.rb +13 -0
  10. data/lib/roro/cli/base/insert_gems.rb +31 -0
  11. data/lib/roro/cli/base/insertions.rb +19 -0
  12. data/lib/roro/cli/base/utilities.rb +39 -0
  13. data/lib/roro/cli/cli.rb +99 -0
  14. data/lib/roro/cli/configuration.rb +69 -0
  15. data/lib/roro/cli/expose.rb +8 -7
  16. data/lib/roro/cli/generate/config.rb +13 -0
  17. data/lib/roro/cli/generate/config/rails.rb +17 -0
  18. data/lib/roro/cli/generate/generate.rb +1 -0
  19. data/lib/roro/cli/generate/generate_keys.rb +47 -0
  20. data/lib/roro/cli/greenfield.rb +22 -87
  21. data/lib/roro/cli/obfuscate.rb +10 -11
  22. data/lib/roro/cli/rollon.rb +74 -11
  23. data/lib/roro/cli/rollon/stories.rb +3 -0
  24. data/{docker/env_files/.keep → lib/roro/cli/rollon/stories/database.rb} +0 -0
  25. data/lib/roro/cli/rollon/stories/rails.rb +1 -0
  26. data/lib/roro/cli/rollon/stories/rails/database/database.rb +31 -0
  27. data/lib/roro/cli/rollon/stories/rails/database/with_mysql.rb +22 -0
  28. data/lib/roro/cli/rollon/stories/rails/database/with_postgres.rb +21 -0
  29. data/lib/roro/cli/rollon/stories/ruby_gem.rb +77 -0
  30. data/lib/roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb +60 -0
  31. data/lib/roro/cli/rollon/stories/stories.rb +7 -0
  32. data/lib/roro/cli/roro_configurator.yml +157 -0
  33. data/lib/roro/cli/ruby_gem.rb +61 -42
  34. data/lib/roro/cli/templates/base/.dockerignore +51 -0
  35. data/{docker/keys → lib/roro/cli/templates/base}/.keep +0 -0
  36. data/lib/roro/cli/templates/base/.roro_config.yml +15 -0
  37. data/lib/roro/cli/templates/base/Dockerfile.tt +82 -0
  38. data/lib/roro/cli/templates/base/config/database.mysql.yml +19 -0
  39. data/lib/roro/cli/templates/{config/database.yml → base/config/database.pg.yml} +0 -0
  40. data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/circleci/config.yml.tt} +7 -6
  41. data/lib/roro/cli/templates/{docker/containers/database → dockerize}/.keep +0 -0
  42. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +23 -0
  43. data/lib/roro/cli/templates/dockerize/docker-compose.yml.tt +60 -0
  44. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  45. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +43 -0
  46. data/lib/roro/cli/templates/{docker/env_files → jumpstart}/.keep +0 -0
  47. data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
  48. data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
  49. data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
  50. data/lib/roro/cli/templates/livereload/hosts.example +7 -0
  51. data/lib/roro/cli/templates/{docker/keys → roro}/.keep +0 -0
  52. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +60 -0
  53. data/lib/roro/cli/templates/{ruby_gem/docker/env_files → roro/roro}/.keep +0 -0
  54. data/lib/roro/cli/templates/{ruby_gem/docker/keys → roro/roro/containers}/.keep +0 -0
  55. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/roro/roro/containers/app}/.keep +0 -0
  56. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/roro/roro/containers/frontend}/.keep +0 -0
  57. data/lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt +8 -0
  58. data/lib/roro/cli/templates/ruby_gem/{config.yml → .circleci/config.yml} +0 -0
  59. data/lib/roro/cli/templates/ruby_gem/docker-compose.yml +3 -3
  60. data/lib/roro/cli/templates/ruby_gem/roro/containers/gem/Dockerfile.tt +9 -0
  61. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/ruby_gem/roro/env_files}/.keep +0 -0
  62. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/ruby_gem/roro/keys}/.keep +0 -0
  63. data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/stories}/.keep +0 -0
  64. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +10 -0
  65. data/{test_apps/dummy/lib/tasks → lib/roro/cli/templates/stories/with_postgresql}/.keep +0 -0
  66. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +7 -0
  67. data/lib/roro/version.rb +1 -1
  68. data/roro.gemspec +7 -4
  69. data/{test_apps/dummy/log → sandbox}/.keep +0 -0
  70. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  71. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  72. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  73. data/vendor/cache/addressable-2.7.0.gem +0 -0
  74. data/vendor/cache/builder-3.2.4.gem +0 -0
  75. data/vendor/cache/byebug-11.1.3.gem +0 -0
  76. data/vendor/cache/coderay-1.1.3.gem +0 -0
  77. data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
  78. data/vendor/cache/crass-1.0.6.gem +0 -0
  79. data/vendor/cache/erubi-1.9.0.gem +0 -0
  80. data/vendor/cache/ffi-1.13.1.gem +0 -0
  81. data/vendor/cache/gem-release-2.1.1.gem +0 -0
  82. data/vendor/cache/guard-2.16.2.gem +0 -0
  83. data/vendor/cache/i18n-1.8.5.gem +0 -0
  84. data/vendor/cache/launchy-2.5.0.gem +0 -0
  85. data/vendor/cache/listen-3.2.1.gem +0 -0
  86. data/vendor/cache/loofah-2.6.0.gem +0 -0
  87. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  88. data/vendor/cache/method_source-1.0.0.gem +0 -0
  89. data/vendor/cache/minitest-5.14.1.gem +0 -0
  90. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  91. data/vendor/cache/mocha-1.11.2.gem +0 -0
  92. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  93. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  94. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  95. data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
  96. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  97. data/vendor/cache/pry-0.13.1.gem +0 -0
  98. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  99. data/vendor/cache/rack-2.2.3.gem +0 -0
  100. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  101. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  102. data/vendor/cache/rake-13.0.1.gem +0 -0
  103. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  104. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  105. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  106. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  107. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  108. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  109. data/vendor/cache/thor-1.0.1.gem +0 -0
  110. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  111. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
  112. metadata +163 -281
  113. data/.circleci/config.yml +0 -177
  114. data/.circleci/setup-gem-credentials.sh +0 -3
  115. data/.ruby-version +0 -1
  116. data/Gemfile.lock +0 -165
  117. data/_config.yml +0 -1
  118. data/docker-compose.yml +0 -21
  119. data/docker/containers/2_5_3/Dockerfile +0 -10
  120. data/docker/containers/2_6_0/Dockerfile +0 -10
  121. data/docker/containers/app/Dockerfile +0 -10
  122. data/docker/env_files/circleci.env.enc +0 -5
  123. data/lib/roro/cli/base.rb +0 -137
  124. data/lib/roro/cli/generate_keys.rb +0 -79
  125. data/lib/roro/cli/templates/Gemfile.lock +0 -0
  126. data/lib/roro/cli/templates/Guardfile +0 -81
  127. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  128. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  129. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  130. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  131. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  132. data/lib/roro/cli/templates/config.yml +0 -71
  133. data/lib/roro/cli/templates/docker-compose.yml +0 -53
  134. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  135. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  136. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  137. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  138. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  139. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  140. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  141. data/lib/roro/cli/templates/gitignore +0 -27
  142. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  143. data/lib/roro/cli/templates/greenfield/Gemfile +0 -2
  144. data/lib/roro/cli/templates/greenfield/Gemfile.lock +0 -0
  145. data/lib/roro/cli/templates/greenfield/config/database.yml.example +0 -16
  146. data/lib/roro/cli/templates/greenfield/docker-compose.yml +0 -15
  147. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  148. data/lib/roro/cli/templates/ruby_gem/docker/containers/app/Dockerfile.tt +0 -10
  149. data/test_apps/dummy/.gitignore +0 -27
  150. data/test_apps/dummy/Gemfile +0 -61
  151. data/test_apps/dummy/README.md +0 -24
  152. data/test_apps/dummy/Rakefile +0 -6
  153. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  154. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  155. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  156. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  157. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  158. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  159. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  160. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  161. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  162. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  163. data/test_apps/dummy/app/models/application_record.rb +0 -3
  164. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  165. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  166. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  167. data/test_apps/dummy/bin/bundle +0 -3
  168. data/test_apps/dummy/bin/rails +0 -4
  169. data/test_apps/dummy/bin/rake +0 -4
  170. data/test_apps/dummy/bin/setup +0 -36
  171. data/test_apps/dummy/bin/update +0 -31
  172. data/test_apps/dummy/bin/yarn +0 -11
  173. data/test_apps/dummy/config.ru +0 -5
  174. data/test_apps/dummy/config/application.rb +0 -19
  175. data/test_apps/dummy/config/boot.rb +0 -4
  176. data/test_apps/dummy/config/cable.yml +0 -10
  177. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  178. data/test_apps/dummy/config/database.yml +0 -85
  179. data/test_apps/dummy/config/environment.rb +0 -5
  180. data/test_apps/dummy/config/environments/development.rb +0 -61
  181. data/test_apps/dummy/config/environments/production.rb +0 -94
  182. data/test_apps/dummy/config/environments/test.rb +0 -46
  183. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  184. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  185. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  186. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  187. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  188. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  189. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  190. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  191. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  192. data/test_apps/dummy/config/locales/en.yml +0 -33
  193. data/test_apps/dummy/config/puma.rb +0 -34
  194. data/test_apps/dummy/config/routes.rb +0 -3
  195. data/test_apps/dummy/config/spring.rb +0 -6
  196. data/test_apps/dummy/config/storage.yml +0 -34
  197. data/test_apps/dummy/db/seeds.rb +0 -7
  198. data/test_apps/dummy/package.json +0 -5
  199. data/test_apps/dummy/public/404.html +0 -67
  200. data/test_apps/dummy/public/422.html +0 -67
  201. data/test_apps/dummy/public/500.html +0 -66
  202. data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
  203. data/test_apps/dummy/public/apple-touch-icon.png +0 -0
  204. data/test_apps/dummy/public/favicon.ico +0 -0
  205. data/test_apps/dummy/public/robots.txt +0 -1
  206. data/test_apps/dummy/storage/.keep +0 -0
  207. data/test_apps/dummy/test/application_system_test_case.rb +0 -5
  208. data/test_apps/dummy/test/controllers/.keep +0 -0
  209. data/test_apps/dummy/test/fixtures/.keep +0 -0
  210. data/test_apps/dummy/test/fixtures/files/.keep +0 -0
  211. data/test_apps/dummy/test/helpers/.keep +0 -0
  212. data/test_apps/dummy/test/integration/.keep +0 -0
  213. data/test_apps/dummy/test/mailers/.keep +0 -0
  214. data/test_apps/dummy/test/models/.keep +0 -0
  215. data/test_apps/dummy/test/system/.keep +0 -0
  216. data/test_apps/dummy/test/test_helper.rb +0 -10
  217. data/test_apps/dummy/tmp/.keep +0 -0
  218. data/test_apps/dummy/vendor/.keep +0 -0
  219. data/test_apps/dummy_gem/.keep +0 -0
  220. data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
  221. data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
  222. data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
  223. data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
  224. data/test_apps/dummy_roro/.gitignore +0 -27
  225. data/test_apps/dummy_roro/Gemfile +0 -64
  226. data/test_apps/dummy_roro/README.md +0 -24
  227. data/test_apps/dummy_roro/Rakefile +0 -6
  228. data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
  229. data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
  230. data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
  231. data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
  232. data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
  233. data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
  234. data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
  235. data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
  236. data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
  237. data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
  238. data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
  239. data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
  240. data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
  241. data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
  242. data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
  243. data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
  244. data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
  245. data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
  246. data/test_apps/dummy_roro/bin/bundle +0 -3
  247. data/test_apps/dummy_roro/bin/rails +0 -4
  248. data/test_apps/dummy_roro/bin/rake +0 -4
  249. data/test_apps/dummy_roro/bin/setup +0 -36
  250. data/test_apps/dummy_roro/bin/update +0 -31
  251. data/test_apps/dummy_roro/bin/yarn +0 -11
  252. data/test_apps/dummy_roro/config.ru +0 -5
  253. data/test_apps/dummy_roro/config/application.rb +0 -19
  254. data/test_apps/dummy_roro/config/boot.rb +0 -4
  255. data/test_apps/dummy_roro/config/cable.yml +0 -10
  256. data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
  257. data/test_apps/dummy_roro/config/database.yml +0 -20
  258. data/test_apps/dummy_roro/config/environment.rb +0 -5
  259. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  260. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  261. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  262. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  263. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  264. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  265. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  266. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  267. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  268. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  269. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  270. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  271. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  272. data/test_apps/dummy_roro/config/puma.rb +0 -34
  273. data/test_apps/dummy_roro/config/routes.rb +0 -3
  274. data/test_apps/dummy_roro/config/spring.rb +0 -6
  275. data/test_apps/dummy_roro/config/storage.yml +0 -34
  276. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  277. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  278. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  279. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  280. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  281. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  282. data/test_apps/dummy_roro/docker/containers/app/staging.env +0 -2
  283. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  284. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  285. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  286. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  287. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  288. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  289. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  290. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  291. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  292. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  293. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  294. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  295. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  296. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  297. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  298. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  299. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  300. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  301. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  302. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  303. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  304. data/test_apps/dummy_roro/log/.keep +0 -0
  305. data/test_apps/dummy_roro/package.json +0 -5
  306. data/test_apps/dummy_roro/public/404.html +0 -67
  307. data/test_apps/dummy_roro/public/422.html +0 -67
  308. data/test_apps/dummy_roro/public/500.html +0 -66
  309. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  310. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  311. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  312. data/test_apps/dummy_roro/public/robots.txt +0 -1
  313. data/test_apps/dummy_roro/storage/.keep +0 -0
  314. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  315. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  316. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  317. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  318. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  319. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  320. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  321. data/test_apps/dummy_roro/test/models/.keep +0 -0
  322. data/test_apps/dummy_roro/test/system/.keep +0 -0
  323. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  324. data/test_apps/dummy_roro/tmp/.keep +0 -0
  325. data/test_apps/dummy_roro/vendor/.keep +0 -0
  326. data/test_apps/greenfield/.keep +0 -0
  327. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  328. data/vendor/cache/actionview-5.2.2.gem +0 -0
  329. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  330. data/vendor/cache/addressable-2.5.2.gem +0 -0
  331. data/vendor/cache/builder-3.2.3.gem +0 -0
  332. data/vendor/cache/coderay-1.1.2.gem +0 -0
  333. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  334. data/vendor/cache/crass-1.0.4.gem +0 -0
  335. data/vendor/cache/erubi-1.8.0.gem +0 -0
  336. data/vendor/cache/ffi-1.9.25.gem +0 -0
  337. data/vendor/cache/guard-2.15.0.gem +0 -0
  338. data/vendor/cache/i18n-1.3.0.gem +0 -0
  339. data/vendor/cache/launchy-2.4.3.gem +0 -0
  340. data/vendor/cache/listen-3.1.5.gem +0 -0
  341. data/vendor/cache/loofah-2.2.3.gem +0 -0
  342. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  343. data/vendor/cache/method_source-0.9.2.gem +0 -0
  344. data/vendor/cache/minitest-5.11.3.gem +0 -0
  345. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  346. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  347. data/vendor/cache/net-scp-2.0.0.gem +0 -0
  348. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  349. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  350. data/vendor/cache/pry-0.12.2.gem +0 -0
  351. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  352. data/vendor/cache/rack-2.0.6.gem +0 -0
  353. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  354. data/vendor/cache/railties-5.2.2.gem +0 -0
  355. data/vendor/cache/rake-10.5.0.gem +0 -0
  356. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  357. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  358. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  359. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  360. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  361. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  362. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  363. data/vendor/cache/thor-0.20.3.gem +0 -0
  364. data/vendor/cache/tzinfo-1.2.5.gem +0 -0
@@ -0,0 +1,22 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def configure_for_mysql
8
+ insert_db_gem('mysql2')
9
+ copy_file 'base/config/database.mysql.yml', 'config/database.yml', force: true
10
+ config = @config.app.clone
11
+
12
+ %w(development production test staging ci).each do |environment|
13
+ config['rails_env'] = environment
14
+
15
+ source = 'base/.env/database.mysql.env.tt'
16
+ target = "roro/containers/database/#{environment}.env"
17
+ template( source, target, config )
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def configure_for_pg
8
+ insert_db_gem('pg')
9
+ copy_file 'base/config/database.pg.yml', 'config/database.yml', force: true
10
+ config = @config.app.clone
11
+ %w(development production test staging ci).each do |environment|
12
+ config['rails_env'] = environment
13
+
14
+ source = 'base/.env/database.pg.env.tt'
15
+ target = "roro/containers/database/#{environment}.env"
16
+ template( source, target, config )
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,77 @@
1
+ require 'roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb'
2
+ # class RubyGem
3
+ # attr_reader :getsome
4
+
5
+ # def initialize
6
+ # @getsome = 'getsome'
7
+ # end
8
+ # end
9
+
10
+ # include Stories::RubyGem
11
+ # module Rollon
12
+ # module Story
13
+
14
+ # end
15
+ # end
16
+ # class Rollon::Story::RubyGem < Roro::CLI
17
+ # attr_reader :getsome
18
+ # def initialize
19
+ # @getsome = 'getsome'
20
+ # end
21
+ # end
22
+
23
+ # # module Roro
24
+
25
+ # # class CLI < Thor
26
+
27
+
28
+ # # no_commands do
29
+
30
+ # # def ruby_gem(*args)
31
+
32
+
33
+ # # end
34
+ # # def copy_ruby_gem_files
35
+ # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
36
+ # # end
37
+ # # end
38
+
39
+ # # def ruby_gem
40
+ # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
41
+ # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
42
+ # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
43
+ # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
44
+ # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
45
+
46
+ # # rubies.each do |ruby|
47
+ # # rubydash = ruby.gsub('.', '-')
48
+ # # rubyunderscore = ruby.gsub('.', '_')
49
+ # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
50
+ # # content = <<-EOM
51
+
52
+ # # app-#{rubydash}:
53
+ # # build:
54
+ # # context: .
55
+ # # dockerfile: #{doc_loc}
56
+ # # command: rake test
57
+ # # EOM
58
+ # # append_to_file 'docker-compose.yml', content
59
+ # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
60
+ # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
61
+ # # end
62
+
63
+ # # # end
64
+ # # # <<EOF
65
+ # # # This is the first way of creating
66
+ # # # here document ie. multiple line string.
67
+ # # # EOF
68
+ # # # %w[app web].each do |container|
69
+ # # # options = {
70
+ # # # email: @env_hash['DOCKERHUB_EMAIL'],
71
+ # # # app_name: @env_hash['APP_NAME'] }
72
+ # # #
73
+ # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
74
+ # # # end
75
+ # # end
76
+ # # end
77
+ # # end
@@ -0,0 +1,60 @@
1
+ module Roro
2
+ class CLI < Thor
3
+
4
+ desc "rollon::ruby_gem::with_ci_cd", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
5
+ method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
6
+ map "rollon::ruby_gem::with_ci_cd" => "rollon_ruby_gem_with_ci_cd"
7
+
8
+ def rollon_ruby_gem_with_ci_cd(*args)
9
+ ruby_gem_with_ci_cd(*args)
10
+ end
11
+
12
+ no_commands do
13
+ def ruby_gem_with_ci_cd(*args)
14
+ configure_for_rollon
15
+ directory 'ruby_gem', './', @config.app
16
+ gitignore_sensitive_files
17
+ append_to_file ".gitignore", "Gemfile.lock\n"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ # # def ruby_gem
23
+ # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
24
+ # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
25
+ # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
26
+ # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
27
+ # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
28
+
29
+ # # rubies.each do |ruby|
30
+ # # rubydash = ruby.gsub('.', '-')
31
+ # # rubyunderscore = ruby.gsub('.', '_')
32
+ # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
33
+ # # content = <<-EOM
34
+
35
+ # # app-#{rubydash}:
36
+ # # build:
37
+ # # context: .
38
+ # # dockerfile: #{doc_loc}
39
+ # # command: rake test
40
+ # # EOM
41
+ # # append_to_file 'docker-compose.yml', content
42
+ # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
43
+ # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
44
+ # # end
45
+
46
+ # # # end
47
+ # # # <<EOF
48
+ # # # This is the first way of creating
49
+ # # # here document ie. multiple line string.
50
+ # # # EOF
51
+ # # # %w[app web].each do |container|
52
+ # # # options = {
53
+ # # # email: @env_hash['DOCKERHUB_EMAIL'],
54
+ # # # app_name: @env_hash['APP_NAME'] }
55
+ # # #
56
+ # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
57
+ # # # end
58
+ # # end
59
+ # # end
60
+ # # end
@@ -0,0 +1,7 @@
1
+ require_relative 'ruby_gem/ruby_gem'
2
+
3
+ # module Stories
4
+ # module RubyGem
5
+ # end
6
+ # end
7
+
@@ -0,0 +1,157 @@
1
+ ---
2
+ main_app_name: <%= Dir.pwd.split('/').last %>
3
+ developer:
4
+ name: your-name
5
+ email: your.email@example.com
6
+
7
+ services:
8
+ server_app:
9
+ name: app
10
+ vendors:
11
+ rails:
12
+ version:
13
+ image:
14
+ official_name: ruby
15
+ variants:
16
+ - alpine
17
+ - buster
18
+ - slim
19
+ - slim-buster
20
+ - stretch
21
+
22
+ choices:
23
+
24
+ config_std_out_true:
25
+ question: |
26
+ The team at Heroku, among others, recommend logging to STDOUT
27
+ and treating your logs as streams. We'll set this to
28
+ true as an environment variable but it may also be helpful
29
+ to configure './config/boot.rb' with '$stdout.sync = true'
30
+ just in case that doesn't work.
31
+ Would you like to configure this?
32
+ choices:
33
+ y: 'Yes'
34
+ n: 'No'
35
+ default: y
36
+
37
+ insert_roro_gem_into_gemfile:
38
+ question: |
39
+ Many developers believe it's good idea to secure sensitive
40
+ environment files and variables. You can use RoRo to
41
+ generate secret keys known only to you for use in any
42
+ environment, and then use them to encrypt and decrypt
43
+ these files. Would you like to add RoRo to your Gemfile?
44
+ choices:
45
+ y: 'Yes'
46
+ n: 'No'
47
+ default: y
48
+
49
+ gitignore_sensitive_files:
50
+ question: |
51
+ If you plan to use the environment files RoRo generates for
52
+ your own environment variables, it's a good idea to keep
53
+ these files out of source control. Would you like RoRo to
54
+ modify your .gitignore file to accomplish this for you ?
55
+ choices:
56
+ y: 'Yes'
57
+ n: 'No'
58
+ default: y
59
+
60
+ insert_hfci_gem_into_gemfile:
61
+ question: |
62
+ Jim Weirich passed too soon and remains missed. In addition
63
+ to Rake, Jim wrote a beautiful gem called 'Given' that makes
64
+ Rspec and Minitest less ugly and thus your tests more easy to
65
+ write. Would you like to install a gem called
66
+ handsome_fencer-test that allows you to try it out?
67
+ choices:
68
+ y: 'Yes'
69
+ n: 'No'
70
+ default: n
71
+
72
+ backup_existing_files:
73
+ question: |
74
+ RoRo will be generating a number of files, some of which will
75
+ replace existing ones. Would you like to back them up?
76
+ choices:
77
+ y: 'Yes'
78
+ n: 'No'
79
+ default: n
80
+
81
+ copy_dockerignore:
82
+ question: |
83
+ Would you like to create a .dockerignore file?
84
+ choices:
85
+ y: 'Yes'
86
+ n: 'No'
87
+ default: y
88
+
89
+ configure_database:
90
+ question: |
91
+ RoRo can reliably dockerize your Rails app with either
92
+ MySQL or PostgreSQL stories. Which story would you prefer
93
+ to roll on?
94
+ choices:
95
+ p: PostgreSQL
96
+ m: MySQL
97
+ default: p
98
+
99
+ env_vars:
100
+ DATABASE_HOST: database
101
+
102
+ database:
103
+ name: database
104
+ vendor: postgresql
105
+ vendors:
106
+ postgresql:
107
+ images:
108
+ official_name:
109
+ versions:
110
+ - latest
111
+ env_vars:
112
+ POSTGRES_USER: postgres
113
+ POSTGRES_PASSWORD: your-postgres-password
114
+
115
+ mysql:
116
+ env_vars:
117
+ MYSQL_ROOT_PASSWORD: root
118
+ MYSQL_PASSWORD: root
119
+ MYSQL_USERNAME: root
120
+ MYSQL_DATABASE_PORT: '3306'
121
+
122
+ frontend:
123
+ name: frontend
124
+ vendors:
125
+
126
+ - frontend
127
+ - vuejs
128
+ - react
129
+ - angular
130
+ webserver:
131
+ default: nginx
132
+ vendors:
133
+ - nginx
134
+ application_server:
135
+ name: appserver
136
+ vendors:
137
+ - unicorn:
138
+ - puma:
139
+ registries:
140
+ dockerhub:
141
+ env_vars:
142
+ DOCKERHUB_EMAIL: your-docker-hub-email
143
+ DOCKERHUB_ORG: your-docker-hub-org-name
144
+ DOCKERHUB_PASSWORD: your-docker-hub-password
145
+ DOCKERHUB_USER: your-docker-hub-user-name
146
+
147
+ ci_cd:
148
+ semaphore:
149
+ circleci:
150
+ env_vars:
151
+ DEPLOY_TAG: "${CIRCLE_SHA1:0:7}"
152
+
153
+ deployment:
154
+ env_vars:
155
+ SERVER_HOST: "ip-address-of-your-server"
156
+ SERVER_PORT: '22'
157
+ SERVER_USER: root
@@ -1,48 +1,67 @@
1
- module Roro
1
+ # module Rollon
2
+ # module Story
3
+
4
+ # end
5
+ # end
6
+ # class Rollon::Story::RubyGem < Roro::CLI
7
+ # attr_reader :getsome
8
+ # def initialize
9
+ # @getsome = 'getsome'
10
+ # end
11
+ # end
2
12
 
3
- class CLI < Thor
13
+ # # module Roro
4
14
 
5
- include Thor::Actions
15
+ # # class CLI < Thor
6
16
 
7
- desc "ruby_gem", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
8
- method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
17
+
18
+ # # no_commands do
19
+
20
+ # # def ruby_gem(*args)
21
+
22
+
23
+ # # end
24
+ # # def copy_ruby_gem_files
25
+ # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
26
+ # # end
27
+ # # end
28
+
29
+ # # def ruby_gem
30
+ # # rubies = options["rubies"] || ["2.5.3", "2.6.0"]
31
+ # # copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
32
+ # # copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
33
+ # # copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
34
+ # # directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
9
35
 
10
- def ruby_gem
11
- rubies = options["rubies"] || ["2.5.3", "2.6.0"]
12
- copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
13
- copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
14
- copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
15
- directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
36
+ # # rubies.each do |ruby|
37
+ # # rubydash = ruby.gsub('.', '-')
38
+ # # rubyunderscore = ruby.gsub('.', '_')
39
+ # # doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
40
+ # # content = <<-EOM
16
41
 
17
- rubies.each do |ruby|
18
- rubydash = ruby.gsub('.', '-')
19
- rubyunderscore = ruby.gsub('.', '_')
20
- doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
21
- content = <<-EOM
42
+ # # app-#{rubydash}:
43
+ # # build:
44
+ # # context: .
45
+ # # dockerfile: #{doc_loc}
46
+ # # command: rake test
47
+ # # EOM
48
+ # # append_to_file 'docker-compose.yml', content
49
+ # # template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
50
+ # # # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
51
+ # # end
22
52
 
23
- app-#{rubydash}:
24
- build:
25
- context: .
26
- dockerfile: #{doc_loc}
27
- command: rake test
28
- EOM
29
- append_to_file 'docker-compose.yml', content
30
- template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
31
- # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
32
- end
33
-
34
- # end
35
- # <<EOF
36
- # This is the first way of creating
37
- # here document ie. multiple line string.
38
- # EOF
39
- # %w[app web].each do |container|
40
- # options = {
41
- # email: @env_hash['DOCKERHUB_EMAIL'],
42
- # app_name: @env_hash['APP_NAME'] }
43
- #
44
- # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
45
- # end
46
- end
47
- end
48
- end
53
+ # # # end
54
+ # # # <<EOF
55
+ # # # This is the first way of creating
56
+ # # # here document ie. multiple line string.
57
+ # # # EOF
58
+ # # # %w[app web].each do |container|
59
+ # # # options = {
60
+ # # # email: @env_hash['DOCKERHUB_EMAIL'],
61
+ # # # app_name: @env_hash['APP_NAME'] }
62
+ # # #
63
+ # # # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
64
+ # # # end
65
+ # # end
66
+ # # end
67
+ # # end