roro 0.3.1 → 0.3.7

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 (354) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +15 -8
  3. data/Guardfile +4 -7
  4. data/lib/roro.rb +0 -1
  5. data/lib/roro/cli.rb +7 -5
  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/configuration.rb +68 -0
  14. data/lib/roro/cli/expose.rb +1 -1
  15. data/lib/roro/cli/generate/config.rb +13 -0
  16. data/lib/roro/cli/generate/config/rails.rb +17 -0
  17. data/lib/roro/cli/generate/generate.rb +1 -0
  18. data/lib/roro/cli/{generate_keys.rb → generate/generate_keys.rb} +7 -23
  19. data/lib/roro/cli/greenfield.rb +21 -75
  20. data/lib/roro/cli/obfuscate.rb +3 -4
  21. data/lib/roro/cli/rollon.rb +74 -11
  22. data/lib/roro/cli/rollon/database/database.rb +31 -0
  23. data/lib/roro/cli/rollon/database/with_mysql.rb +22 -0
  24. data/lib/roro/cli/rollon/database/with_postgres.rb +21 -0
  25. data/lib/roro/cli/rollon/stories.rb +3 -0
  26. data/lib/roro/cli/roro_configurator.yml +157 -0
  27. data/lib/roro/cli/ruby_gem.rb +6 -0
  28. data/lib/roro/cli/templates/base/.dockerignore +51 -0
  29. data/{docker/env_files → lib/roro/cli/templates/base}/.keep +0 -0
  30. data/lib/roro/cli/templates/base/.roro_config.yml +15 -0
  31. data/lib/roro/cli/templates/base/Dockerfile.tt +44 -0
  32. data/lib/roro/cli/templates/base/config/database.mysql.yml +19 -0
  33. data/lib/roro/cli/templates/{config/database.yml → base/config/database.pg.yml} +0 -0
  34. data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/circleci/config.yml.tt} +7 -6
  35. data/{docker/keys → lib/roro/cli/templates/dockerize}/.keep +0 -0
  36. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +23 -0
  37. data/lib/roro/cli/templates/dockerize/docker-compose.yml.tt +60 -0
  38. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  39. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +43 -0
  40. data/lib/roro/cli/templates/{docker/containers/database → jumpstart}/.keep +0 -0
  41. data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
  42. data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
  43. data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
  44. data/lib/roro/cli/templates/livereload/hosts.example +7 -0
  45. data/lib/roro/cli/templates/quickstart/Dockerfile.tt +20 -0
  46. data/{test_apps/dummy/config → lib/roro/cli/templates/quickstart}/database.yml +12 -12
  47. data/lib/roro/cli/templates/{greenfield → quickstart}/docker-compose.yml +4 -2
  48. data/lib/roro/cli/templates/quickstart/entrypoint.sh +8 -0
  49. data/lib/roro/cli/templates/{docker/env_files → roro}/.keep +0 -0
  50. data/lib/roro/cli/templates/roro/docker-compose.yml.tt +60 -0
  51. data/lib/roro/cli/templates/{docker/keys → roro/roro}/.keep +0 -0
  52. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/roro/roro/containers}/.keep +0 -0
  53. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/roro/roro/containers/app}/.keep +0 -0
  54. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/roro/roro/containers/frontend}/.keep +0 -0
  55. data/lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt +8 -0
  56. data/lib/roro/cli/templates/ruby_gem/.gitignore +8 -0
  57. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/stories}/.keep +0 -0
  58. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +10 -0
  59. data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/stories/with_postgresql}/.keep +0 -0
  60. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +7 -0
  61. data/lib/roro/version.rb +1 -1
  62. data/roro.gemspec +6 -3
  63. data/{test_apps/dummy/lib/tasks → sandbox}/.keep +0 -0
  64. data/{lib/roro/cli/templates/Gemfile.lock → tmp/.gitkeep} +0 -0
  65. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  66. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  67. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  68. data/vendor/cache/addressable-2.7.0.gem +0 -0
  69. data/vendor/cache/builder-3.2.4.gem +0 -0
  70. data/vendor/cache/byebug-11.1.3.gem +0 -0
  71. data/vendor/cache/coderay-1.1.3.gem +0 -0
  72. data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
  73. data/vendor/cache/crass-1.0.6.gem +0 -0
  74. data/vendor/cache/erubi-1.9.0.gem +0 -0
  75. data/vendor/cache/ffi-1.13.1.gem +0 -0
  76. data/vendor/cache/guard-2.16.2.gem +0 -0
  77. data/vendor/cache/i18n-1.8.5.gem +0 -0
  78. data/vendor/cache/launchy-2.5.0.gem +0 -0
  79. data/vendor/cache/listen-3.2.1.gem +0 -0
  80. data/vendor/cache/loofah-2.6.0.gem +0 -0
  81. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  82. data/vendor/cache/method_source-1.0.0.gem +0 -0
  83. data/vendor/cache/minitest-5.14.1.gem +0 -0
  84. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  85. data/vendor/cache/mocha-1.11.2.gem +0 -0
  86. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  87. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  88. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  89. data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
  90. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  91. data/vendor/cache/pry-0.13.1.gem +0 -0
  92. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  93. data/vendor/cache/rack-2.2.3.gem +0 -0
  94. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  95. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  96. data/vendor/cache/rake-13.0.1.gem +0 -0
  97. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  98. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  99. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  100. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  101. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  102. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  103. data/vendor/cache/thor-1.0.1.gem +0 -0
  104. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  105. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
  106. metadata +144 -277
  107. data/.circleci/config.yml +0 -177
  108. data/.circleci/setup-gem-credentials.sh +0 -3
  109. data/.ruby-version +0 -1
  110. data/Gemfile.lock +0 -165
  111. data/_config.yml +0 -1
  112. data/docker-compose.yml +0 -21
  113. data/docker/containers/2_5_3/Dockerfile +0 -10
  114. data/docker/containers/2_6_0/Dockerfile +0 -10
  115. data/docker/containers/app/Dockerfile +0 -10
  116. data/docker/env_files/circleci.env.enc +0 -5
  117. data/lib/roro/cli/base.rb +0 -137
  118. data/lib/roro/cli/templates/Guardfile +0 -81
  119. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  120. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  121. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  122. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  123. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  124. data/lib/roro/cli/templates/config.yml +0 -71
  125. data/lib/roro/cli/templates/docker-compose.yml +0 -53
  126. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  127. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  128. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  129. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  130. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  131. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  132. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  133. data/lib/roro/cli/templates/gitignore +0 -27
  134. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  135. data/lib/roro/cli/templates/greenfield/Gemfile +0 -2
  136. data/lib/roro/cli/templates/greenfield/Gemfile.lock +0 -0
  137. data/lib/roro/cli/templates/greenfield/config/database.yml.example +0 -16
  138. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  139. data/test_apps/dummy/.gitignore +0 -27
  140. data/test_apps/dummy/Gemfile +0 -61
  141. data/test_apps/dummy/README.md +0 -24
  142. data/test_apps/dummy/Rakefile +0 -6
  143. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  144. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  145. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  146. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  147. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  148. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  149. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  150. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  151. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  152. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  153. data/test_apps/dummy/app/models/application_record.rb +0 -3
  154. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  155. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  156. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  157. data/test_apps/dummy/bin/bundle +0 -3
  158. data/test_apps/dummy/bin/rails +0 -4
  159. data/test_apps/dummy/bin/rake +0 -4
  160. data/test_apps/dummy/bin/setup +0 -36
  161. data/test_apps/dummy/bin/update +0 -31
  162. data/test_apps/dummy/bin/yarn +0 -11
  163. data/test_apps/dummy/config.ru +0 -5
  164. data/test_apps/dummy/config/application.rb +0 -19
  165. data/test_apps/dummy/config/boot.rb +0 -4
  166. data/test_apps/dummy/config/cable.yml +0 -10
  167. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  168. data/test_apps/dummy/config/environment.rb +0 -5
  169. data/test_apps/dummy/config/environments/development.rb +0 -61
  170. data/test_apps/dummy/config/environments/production.rb +0 -94
  171. data/test_apps/dummy/config/environments/test.rb +0 -46
  172. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  173. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  174. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  175. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  176. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  177. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  178. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  179. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  180. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  181. data/test_apps/dummy/config/locales/en.yml +0 -33
  182. data/test_apps/dummy/config/puma.rb +0 -34
  183. data/test_apps/dummy/config/routes.rb +0 -3
  184. data/test_apps/dummy/config/spring.rb +0 -6
  185. data/test_apps/dummy/config/storage.yml +0 -34
  186. data/test_apps/dummy/db/seeds.rb +0 -7
  187. data/test_apps/dummy/log/.keep +0 -0
  188. data/test_apps/dummy/package.json +0 -5
  189. data/test_apps/dummy/public/404.html +0 -67
  190. data/test_apps/dummy/public/422.html +0 -67
  191. data/test_apps/dummy/public/500.html +0 -66
  192. data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
  193. data/test_apps/dummy/public/apple-touch-icon.png +0 -0
  194. data/test_apps/dummy/public/favicon.ico +0 -0
  195. data/test_apps/dummy/public/robots.txt +0 -1
  196. data/test_apps/dummy/storage/.keep +0 -0
  197. data/test_apps/dummy/test/application_system_test_case.rb +0 -5
  198. data/test_apps/dummy/test/controllers/.keep +0 -0
  199. data/test_apps/dummy/test/fixtures/.keep +0 -0
  200. data/test_apps/dummy/test/fixtures/files/.keep +0 -0
  201. data/test_apps/dummy/test/helpers/.keep +0 -0
  202. data/test_apps/dummy/test/integration/.keep +0 -0
  203. data/test_apps/dummy/test/mailers/.keep +0 -0
  204. data/test_apps/dummy/test/models/.keep +0 -0
  205. data/test_apps/dummy/test/system/.keep +0 -0
  206. data/test_apps/dummy/test/test_helper.rb +0 -10
  207. data/test_apps/dummy/tmp/.keep +0 -0
  208. data/test_apps/dummy/vendor/.keep +0 -0
  209. data/test_apps/dummy_gem/.keep +0 -0
  210. data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
  211. data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
  212. data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
  213. data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
  214. data/test_apps/dummy_roro/.gitignore +0 -27
  215. data/test_apps/dummy_roro/Gemfile +0 -64
  216. data/test_apps/dummy_roro/README.md +0 -24
  217. data/test_apps/dummy_roro/Rakefile +0 -6
  218. data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
  219. data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
  220. data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
  221. data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
  222. data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
  223. data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
  224. data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
  225. data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
  226. data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
  227. data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
  228. data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
  229. data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
  230. data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
  231. data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
  232. data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
  233. data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
  234. data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
  235. data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
  236. data/test_apps/dummy_roro/bin/bundle +0 -3
  237. data/test_apps/dummy_roro/bin/rails +0 -4
  238. data/test_apps/dummy_roro/bin/rake +0 -4
  239. data/test_apps/dummy_roro/bin/setup +0 -36
  240. data/test_apps/dummy_roro/bin/update +0 -31
  241. data/test_apps/dummy_roro/bin/yarn +0 -11
  242. data/test_apps/dummy_roro/config.ru +0 -5
  243. data/test_apps/dummy_roro/config/application.rb +0 -19
  244. data/test_apps/dummy_roro/config/boot.rb +0 -4
  245. data/test_apps/dummy_roro/config/cable.yml +0 -10
  246. data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
  247. data/test_apps/dummy_roro/config/database.yml +0 -20
  248. data/test_apps/dummy_roro/config/environment.rb +0 -5
  249. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  250. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  251. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  252. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  253. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  254. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  255. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  256. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  257. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  258. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  259. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  260. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  261. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  262. data/test_apps/dummy_roro/config/puma.rb +0 -34
  263. data/test_apps/dummy_roro/config/routes.rb +0 -3
  264. data/test_apps/dummy_roro/config/spring.rb +0 -6
  265. data/test_apps/dummy_roro/config/storage.yml +0 -34
  266. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  267. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  268. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  269. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  270. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  271. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  272. data/test_apps/dummy_roro/docker/containers/app/staging.env +0 -2
  273. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  274. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  275. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  276. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  277. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  278. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  279. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  280. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  281. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  282. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  283. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  284. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  285. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  286. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  287. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  288. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  289. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  290. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  291. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  292. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  293. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  294. data/test_apps/dummy_roro/log/.keep +0 -0
  295. data/test_apps/dummy_roro/package.json +0 -5
  296. data/test_apps/dummy_roro/public/404.html +0 -67
  297. data/test_apps/dummy_roro/public/422.html +0 -67
  298. data/test_apps/dummy_roro/public/500.html +0 -66
  299. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  300. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  301. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  302. data/test_apps/dummy_roro/public/robots.txt +0 -1
  303. data/test_apps/dummy_roro/storage/.keep +0 -0
  304. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  305. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  306. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  307. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  308. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  309. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  310. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  311. data/test_apps/dummy_roro/test/models/.keep +0 -0
  312. data/test_apps/dummy_roro/test/system/.keep +0 -0
  313. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  314. data/test_apps/dummy_roro/tmp/.keep +0 -0
  315. data/test_apps/dummy_roro/vendor/.keep +0 -0
  316. data/test_apps/greenfield/.keep +0 -0
  317. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  318. data/vendor/cache/actionview-5.2.2.gem +0 -0
  319. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  320. data/vendor/cache/addressable-2.5.2.gem +0 -0
  321. data/vendor/cache/builder-3.2.3.gem +0 -0
  322. data/vendor/cache/coderay-1.1.2.gem +0 -0
  323. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  324. data/vendor/cache/crass-1.0.4.gem +0 -0
  325. data/vendor/cache/erubi-1.8.0.gem +0 -0
  326. data/vendor/cache/ffi-1.9.25.gem +0 -0
  327. data/vendor/cache/guard-2.15.0.gem +0 -0
  328. data/vendor/cache/i18n-1.3.0.gem +0 -0
  329. data/vendor/cache/launchy-2.4.3.gem +0 -0
  330. data/vendor/cache/listen-3.1.5.gem +0 -0
  331. data/vendor/cache/loofah-2.2.3.gem +0 -0
  332. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  333. data/vendor/cache/method_source-0.9.2.gem +0 -0
  334. data/vendor/cache/minitest-5.11.3.gem +0 -0
  335. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  336. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  337. data/vendor/cache/net-scp-2.0.0.gem +0 -0
  338. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  339. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  340. data/vendor/cache/pry-0.12.2.gem +0 -0
  341. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  342. data/vendor/cache/rack-2.0.6.gem +0 -0
  343. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  344. data/vendor/cache/railties-5.2.2.gem +0 -0
  345. data/vendor/cache/rake-10.5.0.gem +0 -0
  346. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  347. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  348. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  349. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  350. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  351. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  352. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  353. data/vendor/cache/thor-0.20.3.gem +0 -0
  354. data/vendor/cache/tzinfo-1.2.5.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 05d6c9e785043b3dc4eba1e998d9f54f557d2fc37da36813ce098da661eda149
4
- data.tar.gz: 7d2410366ad315485c3cff386e1df78bc2595fdebbedfbdee927c9332c3c089b
3
+ metadata.gz: 4ec8ef8f72b6fd4ff28b8d74e1a6b85a7dc17d62af0b4e8c9f78948c51533dd4
4
+ data.tar.gz: 8583287621045a0cf864d82728480ce4a80fd814bbe99112948f13327c10ce0d
5
5
  SHA512:
6
- metadata.gz: 6e2f941237aee54a13bfd5c9b2c5885dab18fb10ead66a5341074ffe2e66929a3b7137ec289c71bdd9d7178edf2b8419a3f6e64df84005647a54bdf1ba0e0d3d
7
- data.tar.gz: 6057ae5096b750c01c1c63aa5a7eec98edf7b5181e7318cc874df79db89aa3223dd0c8242798cba6b728c606abaca9264de3fd2b4659f42dcbc95ffc91b6abb3
6
+ metadata.gz: 444be7de23db2d83ac72cc0520386c05b4b029667469d96d17cafc39c27fae94bf26168fae05b13fc8c8d64b1160b7f1201d62b1acabede65e667d312e2f6e09
7
+ data.tar.gz: 9f05dcdf81371ef94275b5b262380d5ad360edcc745e61fe7b8ec99d913b7c4d69374ddeb0770362dd5133fe35abfab813f9817688cd730d3659e813bd5cf4c3
data/.gitignore CHANGED
@@ -5,13 +5,20 @@
5
5
  /doc/
6
6
  /pkg/
7
7
  /spec/reports/
8
- tmp/dummy/
9
- tmp/dummy_gem/
10
- tmp/dummy_roro/
11
- tmp/greenfield/
12
- !tmp/.keep
13
- greenfield/**/*
8
+ Gemfile.lock
14
9
  .byebug_history
15
10
 
16
- docker/**/*.env
17
- docker/**/*.key
11
+ roro/**/*.env
12
+ roro/**/*.key
13
+
14
+ *.key
15
+ *.env
16
+
17
+ tmp/*
18
+ tmp/*
19
+ !tmp/.gitkeep
20
+ sandbox/*
21
+ !sandbox/.keep
22
+ !sandbox/greenfield
23
+ sandbox/greenfield/*
24
+ !sandbox/greenfield/.keep
data/Guardfile CHANGED
@@ -2,19 +2,16 @@
2
2
  # More info at https://github.com/guard/guard#readme
3
3
 
4
4
  options = {
5
- cli: '',
6
- all_after_run: false
5
+ cli: '-f',
6
+ all_on_start: true,
7
+ all_after_pass: false
7
8
  }
8
9
 
9
10
  guard :minitest, options do
10
- # with Minitest::Unit
11
11
 
12
12
  watch(%r{^test/(.*)\/?test_(.*)\.rb$})
13
13
  watch(%r{^test/(.*)\/?(.*)_test\.rb$})
14
- watch(%r{^lib/roro/cli/(.+)\.rb$}) { |m| "test/generators/#{m[1]}_test.rb" }
15
-
14
+ watch(%r{^lib/roro/cli/(.+)\.rb$}) { |m| "test/cli/#{m[1]}_test.rb" }
16
15
  watch(%r{^test/thor_helper\.rb$}) { 'test' }
17
-
18
16
  watch(%r{^test/fixtures/files/(.*/)?([^/]+)\.yml$}) { 'test' }
19
-
20
17
  end
@@ -4,5 +4,4 @@ require "roro/cli"
4
4
 
5
5
  module Roro
6
6
  class Error < StandardError; end
7
- # Your code goes here...
8
7
  end
@@ -1,21 +1,23 @@
1
1
  require 'thor'
2
- require 'roro/cli/base'
2
+ require 'roro/cli/base/base'
3
3
  require 'roro/cli/rollon'
4
4
  require 'roro/cli/greenfield'
5
- require 'roro/cli/generate_keys'
6
5
  require 'roro/cli/obfuscate'
7
6
  require 'roro/cli/expose'
8
7
  require 'roro/cli/ruby_gem'
8
+ require 'roro/cli/generate/config/rails'
9
+ require 'roro/cli/generate/config'
10
+ require 'roro/cli/generate/generate_keys'
11
+ require 'roro/cli/configuration'
9
12
 
10
13
  module Roro
14
+
11
15
  class CLI < Thor
12
16
 
13
17
  include Thor::Actions
14
-
18
+
15
19
  def self.source_root
16
20
  File.dirname(__FILE__) + '/cli/templates'
17
21
  end
18
-
19
-
20
22
  end
21
23
  end
@@ -0,0 +1,8 @@
1
+
2
+ require_relative 'check_dependencies.rb'
3
+ require_relative 'continuous_integration.rb'
4
+ require_relative 'utilities.rb'
5
+ require_relative 'insertions.rb'
6
+ require_relative 'insert_gems.rb'
7
+ require_relative 'base_files.rb'
8
+
@@ -0,0 +1,24 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def copy_dockerignore
8
+ copy_file 'base/.dockerignore', '.dockerignore'
9
+ end
10
+
11
+ def copy_host_example
12
+ copy_file 'base/livereload/hosts.example', 'hosts.example'
13
+ end
14
+
15
+ def copy_docker_compose
16
+ template "base/docker-compose.yml", 'docker-compose.yml', @env_hash
17
+ end
18
+
19
+ def copy_database_yml_pg
20
+ copy_file "base/config/database.pg.yml", 'config/database.yml', force: @env_hash[:use_force]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,98 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def confirm_directory_not_empty
8
+ confirm_dependency({
9
+ system_query: "ls -A",
10
+ warning: "This is an empty directory. You can generate a new and fully
11
+ dockerized Rails app using the 'greenfield' command here here but if
12
+ you want to containerize an existing app -- which is what the 'rollon'
13
+ command is for -- you'll need to navigate to a directory with an app we
14
+ can roll onto.",
15
+ suggestion: "$ roro greenfield",
16
+ conditional: "!Dir.glob('*').empty?" })
17
+ end
18
+
19
+ def confirm_directory_empty
20
+ confirm = confirm_dependency({
21
+ system_query: "ls -A",
22
+ warning: "this is not an empty directory. Roro will not greenfield a new Rails app unless either a) the current directory is empty or b) you run greenfield with the --force flag",
23
+ suggestion: "$ roro greenfield --force",
24
+ conditional: "Dir.glob('*').empty?" })
25
+ confirm || true
26
+ end
27
+
28
+ def remove_roro_artifacts
29
+ appname = Dir.pwd.split('/').last
30
+ check_for_clashes = "docker ps --filter name=#{appname}* -aq"
31
+ no_artifact_containers = IO.popen(check_for_clashes).count.eql?(0)
32
+ no_artifact_volumes = IO.popen("docker volume ls --filter name=greenfield*").count > (1)
33
+ unless (no_artifact_containers && no_artifact_volumes)
34
+ remove_clashes = ["docker ps --filter name=#{appname}* -aq | xargs docker stop | xargs docker rm"]
35
+ volumes = %w(db_data app)
36
+ volumes.each {|v| remove_clashes << "docker volume rm #{appname}_#{v}"}
37
+ question = [
38
+ "\n\nWe found some container and volume artifacts which may clash",
39
+ "with RoRo moving forward. You can verify their existence in a ",
40
+ "separate terminal with:",
41
+ "\n\t$ #{check_for_clashes}'\n",
42
+ "You can remove these artifacts with something like:\n"
43
+ ]
44
+ remove_clashes.each { |c| question << "\t$ #{c}"}
45
+ question << "\nWould you like RoRo to attempt to remove them for you?"
46
+ question = question.join("\n")
47
+
48
+ prompt = [question]
49
+ choices = {'y' => 'Yes', 'n' => 'No'}
50
+ choices.each { |k,v| prompt << "(#{k}) #{v.to_s}" }
51
+ answer = ask((prompt.join("\n\n") + "\n\n"),
52
+ default: 'y', limited_to: choices.keys)
53
+ remove_clashes.each {|c| system c }
54
+ end
55
+ end
56
+
57
+ def confirm_dependency(options)
58
+ msg = []
59
+ msg << ""
60
+ msg << delineator
61
+ msg << "It looks like #{options[:warning]}. The following bash command returns false:"
62
+ msg << "\t$ #{options[:system_query]}"
63
+ msg << "Please try these instructions:"
64
+ msg << ("\t" + options[:suggestion])
65
+ msg << delineator
66
+ conditional = options[:conditional] ? eval(options[:conditional]) : system(options[:system_query])
67
+ if conditional == false
68
+ raise(Roro::Error.new(msg.join("\n\n")))
69
+ else
70
+ true
71
+ end
72
+ end
73
+
74
+ def confirm_dependencies
75
+ dependencies = [
76
+ {
77
+ system_query: "which docker",
78
+ warning: "Docker isn't installed",
79
+ suggestion: "https://docs.docker.com/install/"
80
+ }, {
81
+ system_query: "which docker-compose",
82
+ warning: "Docker Compose isn't installed",
83
+ suggestion: "https://docs.docker.com/compose/install/"
84
+
85
+ }, {
86
+ system_query: "docker info",
87
+ warning: "the Docker daemon isn't running",
88
+ suggestion: "https://docs.docker.com/config/daemon/#start-the-daemon-manually"
89
+ }
90
+ ]
91
+
92
+ dependencies.each do |dependency|
93
+ confirm_dependency(dependency)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,13 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def copy_circleci
9
+ directory 'base/circleci', '.circleci', @env_hash
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,31 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def insert_roro_gem_into_gemfile
9
+ insert_into_file 'Gemfile', "gem 'roro'\n\n", before: "group :development, :test do"
10
+ end
11
+
12
+ def insert_db_gem(gem)
13
+ gem_lines = [
14
+ /gem\s['"]sqlite3['"]/,
15
+ /gem\s['"]mysql2['"]/,
16
+ /gem\s['"]pg['"]/,
17
+
18
+ ]
19
+ gem_lines.each do |line|
20
+ comment_lines 'Gemfile', line
21
+ gsub_file 'Gemfile', line, 'gem copied over by roro'
22
+ end
23
+ insert_into_file 'Gemfile', "gem '#{gem}'\n\n", before: "group :development, :test"
24
+ end
25
+
26
+ def insert_hfci_gem_into_gemfile
27
+ insert_into_file 'Gemfile', "gem 'handsome_fencer-test'\n\n", after: "group :development, :test do"
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,19 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def config_std_out_true
9
+ file = 'config/boot.rb'
10
+ line = "$stdout.sync = true\n\n"
11
+ prepend_to_file(file, line, force: true)
12
+ end
13
+
14
+ def gitignore_sensitive_files
15
+ append_to_file ".gitignore", "\nroro/**/*.env\nroro/**/*.key"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def choices
9
+ { default: 'y', limited_to: ["y", "n"] }
10
+ end
11
+
12
+ def own_if_required
13
+ system 'sudo chown -R $USER .'
14
+ end
15
+
16
+ def as_system(command)
17
+ command = OS.linux? ? "sudo #{command}" : command
18
+ system command
19
+ end
20
+
21
+ def chown_if_required()
22
+ warning = "It looks like you're running Docker on some flavor of Linux, in which case the files created by your containers are owned by the root user of the container, and not by the user of the host machine. Please change their ownership by supplying your password at the prompt.",
23
+ action = "system 'sudo chown -R $USER .'"
24
+ msg = []
25
+ msg << ""
26
+ msg << delineator
27
+ msg << warning
28
+ msg << ""
29
+ msg.join("\n\n")
30
+ puts msg
31
+ eval(action)
32
+ end
33
+
34
+ def delineator
35
+ ("-" * 80)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,68 @@
1
+ module Roro
2
+ class Configuration < Thor
3
+
4
+ attr_reader :master, :app, :choices, :thor_actions
5
+
6
+ def initialize(options={})
7
+ @options = options || {}
8
+ @master = YAML.load_file(File.dirname(__FILE__) + '/roro_configurator.yml')
9
+ @master['services']['server_app']['vendors']['rails']['version'] = `ruby -v`.scan(/\d.\d/).first
10
+ @choices = @master['services']['server_app']['vendors']['rails']['choices']
11
+ @app = {}
12
+ @thor_actions = {}
13
+ configure
14
+ end
15
+
16
+ no_commands do
17
+
18
+ def configure
19
+ set_from_defaults
20
+ case
21
+ when @options['interactive'] && File.exist?('.roro_config.yml')
22
+ set_from_roro_config
23
+ set_from_interactive
24
+ when File.exist?('.roro_config.yml')
25
+ set_from_roro_config
26
+ when @options['interactive']
27
+ set_from_interactive
28
+ end
29
+ end
30
+
31
+ def set_from_defaults
32
+ svcs = @master['services']
33
+ rails = svcs['server_app']['vendors']['rails']
34
+ @app = {
35
+ 'main_app_name' => Dir.pwd.split('/').last,
36
+ 'database_host' => rails['env_vars']['DATABASE_HOST'],
37
+ 'ruby_version' => rails['version'],
38
+ 'frontend_service' => svcs['frontend']['name'],
39
+ 'webserver_service' => svcs['webserver']['default'],
40
+ 'database_service' => svcs['database']['name'],
41
+ 'database_vendor' => svcs['database']['vendor'],
42
+ }
43
+ @choices.each { |key, value| @thor_actions[key] = value["default"] }
44
+ end
45
+
46
+ def set_from_roro_config
47
+ yaml = YAML.load_file(Dir.pwd + '/.roro_config.yml')
48
+ yaml.each { |key, value| @app[key] = value }
49
+ if yaml['thor_actions']
50
+ yaml['thor_actions'].each do |key, value|
51
+ @thor_actions[key] = value
52
+ end
53
+ end
54
+ end
55
+
56
+ def set_from_interactive
57
+ @choices.each do |key, v|
58
+ prompt = ["\n\n" + v['question']]
59
+ v['choices'].each { |k,v| prompt << "(#{k}) #{v.to_s}" }
60
+ answer = ask((prompt.join("\n\n") + "\n\n"),
61
+ default: v['default'],
62
+ limited_to: v['choices'].keys)
63
+ @thor_actions[key] = answer
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -6,7 +6,7 @@ module Roro
6
6
  def expose(*args)
7
7
  environments = args.first ? [args.first] : gather_environments
8
8
  environments.each do |environment|
9
- HandsomeFencer::Crypto.expose(environment, 'docker')
9
+ HandsomeFencer::Crypto.expose(environment, 'roro')
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,13 @@
1
+ module Roro
2
+ class CLI < Thor
3
+ include Thor::Actions
4
+
5
+ desc "generate::config::roro", "Generates a config file at .roro_config.yml"
6
+ map "generate::config::roro" => "generate_roro_config"
7
+
8
+
9
+ def generate_roro_config
10
+ create_file ".roro_config.yml", @config.app.to_yaml
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ # module Roro
2
+ # class CLI < Thor
3
+ # include Thor::Actions
4
+
5
+ # desc "generate::config::rails", "Generates a config file to use roro with
6
+ # a rails app at .roro.yml"
7
+ # map "generate::config::rails" => "generate_config_rails"
8
+
9
+ # def generate_config_rails
10
+ # master_config = YAML.load_file(ENV['PWD'] + "/lib/roro/cli/roro_configurator.yml")
11
+ # template 'base/.roro_config.yml', '.roro_config.yml'
12
+ # end
13
+
14
+ # no_commands do
15
+ # end
16
+ # end
17
+ # end