roro 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -9
  3. data/{docker/env_files/.keep → .keep} +0 -0
  4. data/Guardfile +2 -2
  5. data/lib/roro/cli.rb +2 -3
  6. data/lib/roro/cli/base/base.rb +7 -0
  7. data/lib/roro/cli/base/base_files.rb +38 -0
  8. data/lib/roro/cli/base/configuration.rb +63 -0
  9. data/lib/roro/cli/base/continuous_integration.rb +13 -0
  10. data/lib/roro/cli/base/insert_gems.rb +23 -0
  11. data/lib/roro/cli/base/insertions.rb +17 -0
  12. data/lib/roro/cli/base/utilities.rb +17 -0
  13. data/lib/roro/cli/generate_keys.rb +1 -1
  14. data/lib/roro/cli/greenfield.rb +15 -11
  15. data/lib/roro/cli/rollon.rb +19 -12
  16. data/lib/roro/cli/rollon/as_dockerize.rb +28 -0
  17. data/lib/roro/cli/rollon/as_quickstart.rb +17 -0
  18. data/lib/roro/cli/rollon/as_roro.rb +30 -0
  19. data/lib/roro/cli/rollon/use_cases.rb +3 -0
  20. data/lib/roro/cli/ruby_gem.rb +6 -0
  21. data/lib/roro/cli/templates/base/.dockerignore +13 -0
  22. data/{docker/keys → lib/roro/cli/templates/base}/.keep +0 -0
  23. data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/base/circleci/config.yml.tt} +7 -6
  24. data/lib/roro/cli/templates/{config → base/config}/database.yml +0 -0
  25. data/lib/roro/cli/templates/base/docker-compose.yml.tt +53 -0
  26. data/lib/roro/cli/templates/base/livereload/hosts.example +7 -0
  27. data/lib/roro/cli/templates/{docker/containers/database → base/roro}/.keep +0 -0
  28. data/lib/roro/cli/templates/{docker/env_files → base/roro/containers}/.keep +0 -0
  29. data/lib/roro/cli/templates/{docker/keys → base/roro/containers/app}/.keep +0 -0
  30. data/lib/roro/cli/templates/base/roro/containers/app/Dockerfile.tt +32 -0
  31. data/lib/roro/cli/templates/base/roro/containers/app/development.env.tt +1 -0
  32. data/lib/roro/cli/templates/base/roro/containers/app/docker-entrypoint.sh +8 -0
  33. data/lib/roro/cli/templates/base/roro/containers/app/test.env.tt +1 -0
  34. data/lib/roro/cli/templates/base/roro/containers/database/development.env.tt +4 -0
  35. data/lib/roro/cli/templates/base/roro/containers/database/test.env.tt +4 -0
  36. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/base/roro/containers/frontend}/.keep +0 -0
  37. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/dockerize/.env}/.keep +0 -0
  38. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/dockerize/.env/development}/.keep +0 -0
  39. data/lib/roro/cli/templates/dockerize/.env/development/database +3 -0
  40. data/lib/roro/cli/templates/dockerize/.env/development/web +1 -0
  41. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/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 +60 -0
  44. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  45. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +21 -0
  46. data/lib/roro/cli/templates/greenfield/Gemfile +1 -1
  47. data/lib/roro/cli/templates/greenfield/docker-compose.yml +12 -10
  48. data/lib/roro/cli/templates/greenfield/docker-entrypoint.sh +8 -0
  49. data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/jumpstart/.env}/.keep +0 -0
  50. data/{test_apps/dummy/lib/tasks → lib/roro/cli/templates/jumpstart/.env/development}/.keep +0 -0
  51. data/lib/roro/cli/templates/jumpstart/.env/development/database +3 -0
  52. data/lib/roro/cli/templates/jumpstart/.env/development/web +1 -0
  53. data/{test_apps/dummy/log → lib/roro/cli/templates/jumpstart}/.keep +0 -0
  54. data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
  55. data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
  56. data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
  57. data/lib/roro/cli/templates/quickstart/Dockerfile.tt +20 -0
  58. data/{test_apps/dummy/config → lib/roro/cli/templates/quickstart}/database.yml +12 -12
  59. data/lib/roro/cli/templates/quickstart/docker-compose.yml +17 -0
  60. data/lib/roro/cli/templates/quickstart/entrypoint.sh +8 -0
  61. data/lib/roro/cli/templates/ruby_gem/.gitignore +8 -0
  62. data/lib/roro/version.rb +1 -1
  63. data/roro.gemspec +5 -3
  64. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  65. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  66. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  67. data/vendor/cache/addressable-2.7.0.gem +0 -0
  68. data/vendor/cache/builder-3.2.4.gem +0 -0
  69. data/vendor/cache/byebug-11.1.3.gem +0 -0
  70. data/vendor/cache/coderay-1.1.3.gem +0 -0
  71. data/vendor/cache/concurrent-ruby-1.1.6.gem +0 -0
  72. data/vendor/cache/crass-1.0.6.gem +0 -0
  73. data/vendor/cache/erubi-1.9.0.gem +0 -0
  74. data/vendor/cache/ffi-1.13.1.gem +0 -0
  75. data/vendor/cache/guard-2.16.2.gem +0 -0
  76. data/vendor/cache/i18n-1.8.5.gem +0 -0
  77. data/vendor/cache/launchy-2.5.0.gem +0 -0
  78. data/vendor/cache/listen-3.2.1.gem +0 -0
  79. data/vendor/cache/loofah-2.6.0.gem +0 -0
  80. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  81. data/vendor/cache/method_source-1.0.0.gem +0 -0
  82. data/vendor/cache/minitest-5.14.1.gem +0 -0
  83. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  84. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  85. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  86. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  87. data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
  88. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  89. data/vendor/cache/pry-0.13.1.gem +0 -0
  90. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  91. data/vendor/cache/rack-2.2.3.gem +0 -0
  92. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  93. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  94. data/vendor/cache/rake-13.0.1.gem +0 -0
  95. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  96. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  97. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  98. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  99. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  100. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  101. data/vendor/cache/thor-1.0.1.gem +0 -0
  102. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  103. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
  104. metadata +116 -272
  105. data/.circleci/config.yml +0 -177
  106. data/.circleci/setup-gem-credentials.sh +0 -3
  107. data/.ruby-version +0 -1
  108. data/Gemfile.lock +0 -165
  109. data/_config.yml +0 -1
  110. data/docker-compose.yml +0 -21
  111. data/docker/containers/2_5_3/Dockerfile +0 -10
  112. data/docker/containers/2_6_0/Dockerfile +0 -10
  113. data/docker/containers/app/Dockerfile +0 -10
  114. data/docker/env_files/circleci.env.enc +0 -5
  115. data/lib/roro/cli/base.rb +0 -137
  116. data/lib/roro/cli/templates/Gemfile.lock +0 -0
  117. data/lib/roro/cli/templates/Guardfile +0 -81
  118. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  119. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  120. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  121. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  122. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  123. data/lib/roro/cli/templates/config.yml +0 -71
  124. data/lib/roro/cli/templates/docker-compose.yml +0 -53
  125. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  126. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  127. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  128. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  129. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  130. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  131. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  132. data/lib/roro/cli/templates/gitignore +0 -27
  133. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  134. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  135. data/test_apps/dummy/.gitignore +0 -27
  136. data/test_apps/dummy/Gemfile +0 -61
  137. data/test_apps/dummy/README.md +0 -24
  138. data/test_apps/dummy/Rakefile +0 -6
  139. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  140. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  141. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  142. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  143. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  144. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  145. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  146. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  147. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  148. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  149. data/test_apps/dummy/app/models/application_record.rb +0 -3
  150. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  151. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  152. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  153. data/test_apps/dummy/bin/bundle +0 -3
  154. data/test_apps/dummy/bin/rails +0 -4
  155. data/test_apps/dummy/bin/rake +0 -4
  156. data/test_apps/dummy/bin/setup +0 -36
  157. data/test_apps/dummy/bin/update +0 -31
  158. data/test_apps/dummy/bin/yarn +0 -11
  159. data/test_apps/dummy/config.ru +0 -5
  160. data/test_apps/dummy/config/application.rb +0 -19
  161. data/test_apps/dummy/config/boot.rb +0 -4
  162. data/test_apps/dummy/config/cable.yml +0 -10
  163. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  164. data/test_apps/dummy/config/environment.rb +0 -5
  165. data/test_apps/dummy/config/environments/development.rb +0 -61
  166. data/test_apps/dummy/config/environments/production.rb +0 -94
  167. data/test_apps/dummy/config/environments/test.rb +0 -46
  168. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  169. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  170. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  171. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  172. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  173. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  174. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  175. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  176. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  177. data/test_apps/dummy/config/locales/en.yml +0 -33
  178. data/test_apps/dummy/config/puma.rb +0 -34
  179. data/test_apps/dummy/config/routes.rb +0 -3
  180. data/test_apps/dummy/config/spring.rb +0 -6
  181. data/test_apps/dummy/config/storage.yml +0 -34
  182. data/test_apps/dummy/db/seeds.rb +0 -7
  183. data/test_apps/dummy/package.json +0 -5
  184. data/test_apps/dummy/public/404.html +0 -67
  185. data/test_apps/dummy/public/422.html +0 -67
  186. data/test_apps/dummy/public/500.html +0 -66
  187. data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
  188. data/test_apps/dummy/public/apple-touch-icon.png +0 -0
  189. data/test_apps/dummy/public/favicon.ico +0 -0
  190. data/test_apps/dummy/public/robots.txt +0 -1
  191. data/test_apps/dummy/storage/.keep +0 -0
  192. data/test_apps/dummy/test/application_system_test_case.rb +0 -5
  193. data/test_apps/dummy/test/controllers/.keep +0 -0
  194. data/test_apps/dummy/test/fixtures/.keep +0 -0
  195. data/test_apps/dummy/test/fixtures/files/.keep +0 -0
  196. data/test_apps/dummy/test/helpers/.keep +0 -0
  197. data/test_apps/dummy/test/integration/.keep +0 -0
  198. data/test_apps/dummy/test/mailers/.keep +0 -0
  199. data/test_apps/dummy/test/models/.keep +0 -0
  200. data/test_apps/dummy/test/system/.keep +0 -0
  201. data/test_apps/dummy/test/test_helper.rb +0 -10
  202. data/test_apps/dummy/tmp/.keep +0 -0
  203. data/test_apps/dummy/vendor/.keep +0 -0
  204. data/test_apps/dummy_gem/.keep +0 -0
  205. data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
  206. data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
  207. data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
  208. data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
  209. data/test_apps/dummy_roro/.gitignore +0 -27
  210. data/test_apps/dummy_roro/Gemfile +0 -64
  211. data/test_apps/dummy_roro/README.md +0 -24
  212. data/test_apps/dummy_roro/Rakefile +0 -6
  213. data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
  214. data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
  215. data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
  216. data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
  217. data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
  218. data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
  219. data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
  220. data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
  221. data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
  222. data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
  223. data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
  224. data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
  225. data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
  226. data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
  227. data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
  228. data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
  229. data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
  230. data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
  231. data/test_apps/dummy_roro/bin/bundle +0 -3
  232. data/test_apps/dummy_roro/bin/rails +0 -4
  233. data/test_apps/dummy_roro/bin/rake +0 -4
  234. data/test_apps/dummy_roro/bin/setup +0 -36
  235. data/test_apps/dummy_roro/bin/update +0 -31
  236. data/test_apps/dummy_roro/bin/yarn +0 -11
  237. data/test_apps/dummy_roro/config.ru +0 -5
  238. data/test_apps/dummy_roro/config/application.rb +0 -19
  239. data/test_apps/dummy_roro/config/boot.rb +0 -4
  240. data/test_apps/dummy_roro/config/cable.yml +0 -10
  241. data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
  242. data/test_apps/dummy_roro/config/database.yml +0 -20
  243. data/test_apps/dummy_roro/config/environment.rb +0 -5
  244. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  245. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  246. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  247. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  248. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  249. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  250. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  251. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  252. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  253. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  254. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  255. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  256. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  257. data/test_apps/dummy_roro/config/puma.rb +0 -34
  258. data/test_apps/dummy_roro/config/routes.rb +0 -3
  259. data/test_apps/dummy_roro/config/spring.rb +0 -6
  260. data/test_apps/dummy_roro/config/storage.yml +0 -34
  261. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  262. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  263. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  264. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  265. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  266. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  267. data/test_apps/dummy_roro/docker/containers/app/staging.env +0 -2
  268. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  269. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  270. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  271. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  272. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  273. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  274. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  275. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  276. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  277. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  278. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  279. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  280. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  281. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  282. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  283. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  284. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  285. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  286. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  287. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  288. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  289. data/test_apps/dummy_roro/log/.keep +0 -0
  290. data/test_apps/dummy_roro/package.json +0 -5
  291. data/test_apps/dummy_roro/public/404.html +0 -67
  292. data/test_apps/dummy_roro/public/422.html +0 -67
  293. data/test_apps/dummy_roro/public/500.html +0 -66
  294. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  295. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  296. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  297. data/test_apps/dummy_roro/public/robots.txt +0 -1
  298. data/test_apps/dummy_roro/storage/.keep +0 -0
  299. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  300. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  301. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  302. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  303. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  304. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  305. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  306. data/test_apps/dummy_roro/test/models/.keep +0 -0
  307. data/test_apps/dummy_roro/test/system/.keep +0 -0
  308. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  309. data/test_apps/dummy_roro/tmp/.keep +0 -0
  310. data/test_apps/dummy_roro/vendor/.keep +0 -0
  311. data/test_apps/greenfield/.keep +0 -0
  312. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  313. data/vendor/cache/actionview-5.2.2.gem +0 -0
  314. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  315. data/vendor/cache/addressable-2.5.2.gem +0 -0
  316. data/vendor/cache/builder-3.2.3.gem +0 -0
  317. data/vendor/cache/coderay-1.1.2.gem +0 -0
  318. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  319. data/vendor/cache/crass-1.0.4.gem +0 -0
  320. data/vendor/cache/erubi-1.8.0.gem +0 -0
  321. data/vendor/cache/ffi-1.9.25.gem +0 -0
  322. data/vendor/cache/guard-2.15.0.gem +0 -0
  323. data/vendor/cache/i18n-1.3.0.gem +0 -0
  324. data/vendor/cache/launchy-2.4.3.gem +0 -0
  325. data/vendor/cache/listen-3.1.5.gem +0 -0
  326. data/vendor/cache/loofah-2.2.3.gem +0 -0
  327. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  328. data/vendor/cache/method_source-0.9.2.gem +0 -0
  329. data/vendor/cache/minitest-5.11.3.gem +0 -0
  330. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  331. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  332. data/vendor/cache/net-scp-2.0.0.gem +0 -0
  333. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  334. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  335. data/vendor/cache/pry-0.12.2.gem +0 -0
  336. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  337. data/vendor/cache/rack-2.0.6.gem +0 -0
  338. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  339. data/vendor/cache/railties-5.2.2.gem +0 -0
  340. data/vendor/cache/rake-10.5.0.gem +0 -0
  341. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  342. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  343. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  344. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  345. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  346. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  347. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  348. data/vendor/cache/thor-0.20.3.gem +0 -0
  349. 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: 07120301e41039997a4c33fb6f688fe24c8ff257b59e98565cb205aaf1da6b3e
4
- data.tar.gz: '08bc0b854fe1b8539e0936991f5e9608962fa350d53667bca9c36455b7cd5611'
3
+ metadata.gz: 6ae59fe35a7653d9c15191a99184ad9f850a50eb49ae6cde1da06ddf29b420a9
4
+ data.tar.gz: 00c864acbcf2155ad14ee0ab6d1b01bb0194352d80fa8191c950691863feb2df
5
5
  SHA512:
6
- metadata.gz: 26620f53160df41b7633647924031b7d1da511418b70ac360ccc81e2ba8164d8c5d79f54e5f721ccc6c98560e7a902281c6c249a03326742b8553f3bd52a86ea
7
- data.tar.gz: 1d4179d095a15666a55a4eadefa71677f896036592f0df642d6585d784703bda4e49ea70281260f4b367e02ddf97a35a369160bd780e4807c64d74fb966f492a
6
+ metadata.gz: 9c181460cfb92d19799ad53801f690fcc02335153985a849685a4e4472d935502b25e65387c3a9124b19453498b9f6d575ea128ac73dffe68b556b0c99391beb
7
+ data.tar.gz: a8051fd9f5d70b54dc490c5735396e7bca783554ce42cae6ecab90490d870c77b2b0aa41ce1ed46f00cf7c0c9195b7b5153b9a966ce1028c6f2c5fa53325e887
data/.gitignore CHANGED
@@ -5,13 +5,7 @@
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
+ tmp/*
9
+ Gemfile.lock
14
10
  .byebug_history
15
-
16
- docker/**/*.env
17
- docker/**/*.key
11
+ /sandbox/**/*
File without changes
data/Guardfile CHANGED
@@ -3,11 +3,11 @@
3
3
 
4
4
  options = {
5
5
  cli: '',
6
- all_after_run: false
6
+ all_after_run: true,
7
+ all_after_pass: true
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$})
@@ -1,5 +1,6 @@
1
+ require 'byebug'
1
2
  require 'thor'
2
- require 'roro/cli/base'
3
+ require 'roro/cli/base/base'
3
4
  require 'roro/cli/rollon'
4
5
  require 'roro/cli/greenfield'
5
6
  require 'roro/cli/generate_keys'
@@ -15,7 +16,5 @@ module Roro
15
16
  def self.source_root
16
17
  File.dirname(__FILE__) + '/cli/templates'
17
18
  end
18
-
19
-
20
19
  end
21
20
  end
@@ -0,0 +1,7 @@
1
+ require_relative 'configuration.rb'
2
+ require_relative 'continuous_integration.rb'
3
+ require_relative 'utilities.rb'
4
+ require_relative 'insertions.rb'
5
+ require_relative 'insert_gems.rb'
6
+ require_relative 'base_files.rb'
7
+
@@ -0,0 +1,38 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def copy_dockerignore
8
+ copy_file 'base/.dockerignore', '.dockerignore', @env_hash[:use_force]
9
+
10
+ end
11
+
12
+ def copy_host_example
13
+ copy_file 'base/livereload/hosts.example', 'hosts.example'
14
+ end
15
+
16
+ def copy_docker_compose
17
+ template "base/docker-compose.yml", 'docker-compose.yml', @env_hash[:force]
18
+ end
19
+
20
+ def copy_roro
21
+ directory 'base/roro/containers/app', "roro/containers/#{@env_hash[:app_name]}", @env_hash
22
+ directory 'base/roro/containers/database', "roro/containers/#{@env_hash[:database_container]}", @env_hash
23
+ directory 'base/roro/containers/frontend', "roro/containers/#{@env_hash[:frontend_container]}", @env_hash
24
+ end
25
+
26
+ def copy_config_database_yml
27
+ copy_file "base/config/database.yml", 'config/database.yml', @env_hash[:use_force]
28
+ end
29
+
30
+ def copy_base_files
31
+ copy_circleci
32
+ copy_roro
33
+ copy_docker_compose
34
+ copy_config_database_yml
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,63 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def get_configuration_variables
9
+ options["interactive"] ? set_interactively : set_from_defaults
10
+ @env_hash[:deploy_tag] = "${CIRCLE_SHA1:0:7}"
11
+ @env_hash[:server_port] = "22"
12
+ @env_hash[:server_user] = "root"
13
+ @env_hash
14
+ end
15
+
16
+ def set_from_defaults
17
+ @env_hash = configuration_hash
18
+ @env_hash.map do |key, hash|
19
+ @env_hash[key] = hash.values.last
20
+ end
21
+ @env_hash
22
+ end
23
+
24
+ def set_interactively
25
+ @env_hash = configuration_hash
26
+ @env_hash.map do |key, prompt|
27
+ answer = ask("Please provide #{prompt.keys.first} or hit enter to accept: \[ #{prompt.values.first} \]")
28
+ @env_hash[key] = (answer == "") ? prompt.values.first : answer
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def configuration_hash
35
+ {
36
+ app_name: {
37
+ "the name of your app" => `pwd`.split('/').last.strip! },
38
+ ruby_version: {
39
+ "the version of ruby you'd like" => `ruby -v`.scan(/\d.\d/).first },
40
+ server_host: {
41
+ "the ip address of your server" => "ip-address-of-your-server"},
42
+ database_container: {
43
+ "the name of your database container" => "database"},
44
+ frontend_container: {
45
+ "the name of your frontend container" => "frontend"},
46
+ server_container: {
47
+ "the name of your server container" => "nginx"},
48
+ dockerhub_email: {
49
+ "your Docker Hub email" => "your-docker-hub-email"},
50
+ dockerhub_user: {
51
+ "your Docker Hub username" => "your-docker-hub-user-name" },
52
+ dockerhub_org: {
53
+ "your Docker Hub organization name" => "your-docker-hub-org-name"},
54
+ dockerhub_password: {
55
+ "your Docker Hub password" => "your-docker-hub-password"},
56
+ postgres_user: {
57
+ "your Postgres username" => "postgres"},
58
+ postgres_password: {
59
+ "your Postgres password" => "your-postgres-password"} }
60
+ end
61
+ end
62
+ end
63
+ 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,23 @@
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'", before: "group :development, :test do"
10
+ end
11
+
12
+ def insert_pg_gem_into_gemfile
13
+ comment_lines 'Gemfile', /sqlite/
14
+ comment_lines 'Gemfile', /mysql/
15
+ insert_into_file 'Gemfile', "gem 'pg'\n", before: "group :development, :test do"
16
+ end
17
+
18
+ def insert_hfci_gem_into_gemfile
19
+ insert_into_file 'Gemfile', "gem 'handsome_fencer-test'", after: "group :development, :test do"
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def config_std_out_true
9
+ prepend_to_file('config/boot.rb', "$stdout.sync = true\n\n", @env_hash[:use_force])
10
+ end
11
+
12
+ def gitignore_sensitive_files
13
+ append_to_file ".gitignore", "\nroro/**/*.env\nroro/**/*.key"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
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
+ end
16
+ end
17
+ end
@@ -16,7 +16,7 @@ module Roro
16
16
  end
17
17
 
18
18
  desc "generate_key", "Generate a key for each environment"
19
- method_option :environment, type: :string, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
19
+ method_option :environment, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
20
20
 
21
21
  def generate_key(*args)
22
22
  environments = args.first ? [args.first] : gather_environments
@@ -11,20 +11,24 @@ module Roro
11
11
  method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
12
12
  method_option :interactive, desc: "Set up your environment variables as you go."
13
13
  method_option :force, desc: "force over-write of existing files"
14
-
14
+
15
+
15
16
  def greenfield
16
-
17
- confirm_dependencies
18
- copy_greenfield_files
19
- as_system("docker-compose run web rails new . --force --database=postgresql --skip-bundle")
20
- chown_if_required
21
- as_system('sudo docker-compose build')
22
- as_system('mv -f config/database.yml.example config/database.yml')
23
- as_system('docker-compose up --build --force-recreate -d ')
24
- as_system 'docker-compose run web bin/rails db:create'
17
+ get_configuration_variables
18
+ @env_hash[:use_force] = { force: true }
19
+ template 'greenfield/Dockerfile.tt', 'Dockerfile', @env_hash
20
+ system "DOCKER_BUILDKIT=1 docker build --file Dockerfile --output . ."
21
+ rollon_as_dockerized
25
22
  end
26
-
23
+
27
24
  no_commands do
25
+
26
+ def copy_greenfield_files
27
+ template 'greenfield/Dockerfile.tt', 'Dockerfile', @env_hash
28
+ template 'greenfield/docker-compose.yml', 'docker-compose.yml'
29
+ copy_file 'greenfield/Gemfile', 'Gemfile'
30
+ copy_file 'greenfield/Gemfile.lock', 'Gemfile.lock'
31
+ end
28
32
 
29
33
  def as_system(command)
30
34
  command = OS.linux? ? "sudo #{command}" : command
@@ -1,21 +1,28 @@
1
+ require_relative 'rollon/use_cases'
2
+
1
3
  module Roro
2
4
 
3
5
  class CLI < Thor
4
6
 
5
- method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
6
- desc "rollon", "Generates files necessary to greenfield a new app within a dockerized rails container, along with a set of files necessary for continuous deployment using CircleCI"
7
+ desc "rollon", "Generates files and makes changes to your rails app necessary
8
+ to run it using Docker containers."
7
9
  method_option :interactive, desc: "Set up your environment variables as you go."
8
10
 
9
11
  def rollon
10
- configurate
11
- if Dir['./*'].empty?
12
- raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it doesn't exist. Please either change into a directory with a Rails app or generate a new one using '$ roro greenfield'.")
13
- end
14
- copy_base_files
15
- append_to_existing_files
16
- insert_into_file 'Gemfile', "gem 'sshkit'\n\n", before: "group :development, :test do"
17
- insert_into_file 'Gemfile', "\n\tgem 'handsome_fencer-test'", after: "group :development, :test do"
18
-
12
+ # if Dir['./*'].empty?
13
+ # raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it
14
+ # doesn't exist. Please either change into a directory with a Rails app or
15
+ # generate a new one using '$ roro greenfield'.")
16
+ # end
17
+ get_configuration_variables
18
+ # case ask("Configure using the Quickstart, Curated, or HandsomeFencer way?\n\n(1) Quikstart\n\n(2) Curated\n\n(3) HandsomeFencer\n\n", { default: '2', limited_to: %w(1 2 3) })
19
+ # when '1'
20
+ # rollon_as_quickstart
21
+ # when '2'
22
+ # rollon_as_dockerized
23
+ # when '3'
24
+ # end
25
+ rollon_as_dockerized
19
26
  end
20
27
  end
21
- end
28
+ end
@@ -0,0 +1,28 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def rollon_as_dockerized
8
+ copy_dockerignore
9
+ if @env_hash[:use_force][:force]
10
+ config_std_out_true
11
+ else
12
+ if ask('Configure $stdout.sync for docker?', choices).eql?('y')
13
+ end
14
+ end
15
+ copy_config_database_yml
16
+ insert_pg_gem_into_gemfile
17
+ copy_file 'dockerize/docker-compose.yml', 'docker-compose.yml'
18
+ template "dockerize/Dockerfile", 'Dockerfile', @env_hash
19
+ copy_file 'dockerize/docker-entrypoint.sh', 'docker-entrypoint.sh'
20
+ directory 'dockerize/.env', '.env'
21
+ system 'docker-compose build'
22
+ system 'docker-compose run --no-deps web bin/rails webpacker:install'
23
+ system 'docker-compose up'
24
+ copy_host_example
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ module Roro
2
+ class CLI < Thor
3
+
4
+ no_commands do
5
+
6
+ def rollon_as_quickstart
7
+ copy_file "quickstart/docker-compose.yml", 'docker-compose.yml'
8
+ copy_file "quickstart/entrypoint.sh", 'entrypoint.sh'
9
+ copy_file "quickstart/database.yml", "config/database.yml"
10
+ template "quickstart/Dockerfile", 'Dockerfile', @env_hash
11
+
12
+ insert_pg_gem_into_gemfile
13
+ system 'sudo chown -R $USER .'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ no_commands do
6
+
7
+ def rollon_as_roro
8
+ if Dir['./*'].empty?
9
+ raise Roro::Error.new("Oops -- Roro can't roll itself onto a Rails app if it doesn't exist. Please either change into a directory with a Rails app or generate a new one using '$ roro greenfield'.")
10
+ end
11
+ if ask('Configure $stdout.sync for docker?', choices).eql?('y')
12
+ config_std_out_true
13
+ end
14
+ if ask('Configure .gitignore for roro?', choices).eql?('y')
15
+ gitignore_sensitive_files
16
+ end
17
+ if ask('Add RoRo to your Gemfile?', choices).eql?('y')
18
+ insert_roro_gem_into_gemfile
19
+ end
20
+ if ask('Add handsome_fencer-test to your Gemfile?', choices).eql?('y')
21
+ insert_hfci_gem_into_gemfile
22
+ end
23
+ if ask("Backup 'config/database.yml'?").eql?('y')
24
+ FileUtils.mv 'config/database.yml', "config/database.yml.backup"
25
+ end
26
+ copy_base_files
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'as_quickstart.rb'
2
+ require_relative 'as_dockerize.rb'
3
+ require_relative 'as_roro.rb'
@@ -7,6 +7,12 @@ module Roro
7
7
  desc "ruby_gem", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
8
8
  method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
9
9
 
10
+ no_commands do
11
+ def copy_ruby_gem_files
12
+ copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
13
+ end
14
+ end
15
+
10
16
  def ruby_gem
11
17
  rubies = options["rubies"] || ["2.5.3", "2.6.0"]
12
18
  copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
@@ -0,0 +1,13 @@
1
+ # Git
2
+ .git # <label id="chapter.fine-tuning-our-rails-image.dockerignore.git-history" />
3
+ .gitignore # <label id="chapter.fine-tuning-our-rails-image.dockerignore.gitignore" />
4
+
5
+ # Logs
6
+ log/* # <label id="chapter.fine-tuning-our-rails-image.dockerignore.log_dir" />
7
+
8
+ # Temp files
9
+ tmp/* # <label id="chapter.fine-tuning-our-rails-image.dockerignore.tmp_dir" />
10
+
11
+ # Editor temp files
12
+ *.swp # <label id="chapter.fine-tuning-our-rails-image.dockerignore.vim_swp_files" />
13
+ *.swo # <label id="chapter.fine-tuning-our-rails-image.dockerignore.vim_swo_files" />