roro 0.2.5 → 0.3.5

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 (353) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -9
  3. data/{docker/env_files/.keep → .keep} +0 -0
  4. data/Guardfile +6 -3
  5. data/lib/roro/cli.rb +1 -3
  6. data/lib/roro/cli/base/base.rb +7 -0
  7. data/lib/roro/cli/base/base_files.rb +30 -0
  8. data/lib/roro/cli/base/configuration.rb +118 -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 +39 -0
  13. data/lib/roro/cli/generate_keys.rb +1 -1
  14. data/lib/roro/cli/greenfield.rb +19 -73
  15. data/lib/roro/cli/rollon.rb +30 -13
  16. data/lib/roro/cli/rollon/rollon_as_dockerize.rb +42 -0
  17. data/lib/roro/cli/rollon/rollon_as_quickstart.rb +17 -0
  18. data/lib/roro/cli/rollon/rollon_as_roro.rb +30 -0
  19. data/lib/roro/cli/rollon/stories.rb +3 -0
  20. data/lib/roro/cli/ruby_gem.rb +6 -0
  21. data/lib/roro/cli/templates/base/.dockerignore +51 -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/database.yml → base/config/database.yml.pg.tt} +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/{test_apps/dummy_roro/config/database.yml → lib/roro/cli/templates/base/pg/config/database.yml.pg.tt} +0 -0
  28. data/lib/roro/cli/templates/base/pg/database.yml.pg.tt +20 -0
  29. data/lib/roro/cli/templates/{docker/containers/database → base/roro}/.keep +0 -0
  30. data/lib/roro/cli/templates/{docker/env_files → base/roro/containers}/.keep +0 -0
  31. data/lib/roro/cli/templates/{docker/keys → base/roro/containers/app}/.keep +0 -0
  32. data/lib/roro/cli/templates/base/roro/containers/app/Dockerfile.tt +32 -0
  33. data/lib/roro/cli/templates/base/roro/containers/app/development.env.tt +1 -0
  34. data/lib/roro/cli/templates/base/roro/containers/app/docker-entrypoint.sh +8 -0
  35. data/lib/roro/cli/templates/base/roro/containers/app/test.env.tt +1 -0
  36. data/lib/roro/cli/templates/base/roro/containers/database/development.env.tt +4 -0
  37. data/lib/roro/cli/templates/base/roro/containers/database/test.env.tt +4 -0
  38. data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/base/roro/containers/frontend}/.keep +0 -0
  39. data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/dockerize/.env}/.keep +0 -0
  40. data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/dockerize/.env/development}/.keep +0 -0
  41. data/lib/roro/cli/templates/dockerize/.env/development/database +3 -0
  42. data/lib/roro/cli/templates/dockerize/.env/development/web +1 -0
  43. data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/dockerize}/.keep +0 -0
  44. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +23 -0
  45. data/lib/roro/cli/templates/dockerize/docker-compose.yml.tt +60 -0
  46. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
  47. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +21 -0
  48. data/lib/roro/cli/templates/greenfield/docker-compose.yml.tt +55 -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/{greenfield → quickstart}/docker-compose.yml +4 -2
  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-0.3.4.gem +0 -0
  64. data/roro.gemspec +6 -3
  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.6.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 +134 -276
  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/Gemfile.lock +0 -0
  119. data/lib/roro/cli/templates/Guardfile +0 -81
  120. data/lib/roro/cli/templates/circleci/Rakefile +0 -4
  121. data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
  122. data/lib/roro/cli/templates/circleci/config.yml +0 -69
  123. data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
  124. data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
  125. data/lib/roro/cli/templates/config.yml +0 -71
  126. data/lib/roro/cli/templates/docker-compose.yml +0 -53
  127. data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
  128. data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
  129. data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
  130. data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
  131. data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
  132. data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
  133. data/lib/roro/cli/templates/docker/web/app.conf +0 -23
  134. data/lib/roro/cli/templates/gitignore +0 -27
  135. data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
  136. data/lib/roro/cli/templates/greenfield/Gemfile +0 -2
  137. data/lib/roro/cli/templates/greenfield/Gemfile.lock +0 -0
  138. data/lib/roro/cli/templates/greenfield/config/database.yml.example +0 -16
  139. data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
  140. data/test_apps/dummy/.gitignore +0 -27
  141. data/test_apps/dummy/Gemfile +0 -61
  142. data/test_apps/dummy/README.md +0 -24
  143. data/test_apps/dummy/Rakefile +0 -6
  144. data/test_apps/dummy/app/assets/config/manifest.js +0 -3
  145. data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
  146. data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
  147. data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
  148. data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
  149. data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
  150. data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
  151. data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
  152. data/test_apps/dummy/app/jobs/application_job.rb +0 -2
  153. data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
  154. data/test_apps/dummy/app/models/application_record.rb +0 -3
  155. data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
  156. data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
  157. data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
  158. data/test_apps/dummy/bin/bundle +0 -3
  159. data/test_apps/dummy/bin/rails +0 -4
  160. data/test_apps/dummy/bin/rake +0 -4
  161. data/test_apps/dummy/bin/setup +0 -36
  162. data/test_apps/dummy/bin/update +0 -31
  163. data/test_apps/dummy/bin/yarn +0 -11
  164. data/test_apps/dummy/config.ru +0 -5
  165. data/test_apps/dummy/config/application.rb +0 -19
  166. data/test_apps/dummy/config/boot.rb +0 -4
  167. data/test_apps/dummy/config/cable.yml +0 -10
  168. data/test_apps/dummy/config/credentials.yml.enc +0 -1
  169. data/test_apps/dummy/config/environment.rb +0 -5
  170. data/test_apps/dummy/config/environments/development.rb +0 -61
  171. data/test_apps/dummy/config/environments/production.rb +0 -94
  172. data/test_apps/dummy/config/environments/test.rb +0 -46
  173. data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
  174. data/test_apps/dummy/config/initializers/assets.rb +0 -14
  175. data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
  176. data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
  177. data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
  178. data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  179. data/test_apps/dummy/config/initializers/inflections.rb +0 -16
  180. data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
  181. data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
  182. data/test_apps/dummy/config/locales/en.yml +0 -33
  183. data/test_apps/dummy/config/puma.rb +0 -34
  184. data/test_apps/dummy/config/routes.rb +0 -3
  185. data/test_apps/dummy/config/spring.rb +0 -6
  186. data/test_apps/dummy/config/storage.yml +0 -34
  187. data/test_apps/dummy/db/seeds.rb +0 -7
  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/environment.rb +0 -5
  248. data/test_apps/dummy_roro/config/environments/development.rb +0 -61
  249. data/test_apps/dummy_roro/config/environments/production.rb +0 -94
  250. data/test_apps/dummy_roro/config/environments/test.rb +0 -46
  251. data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
  252. data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
  253. data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
  254. data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
  255. data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
  256. data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
  257. data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
  258. data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
  259. data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
  260. data/test_apps/dummy_roro/config/locales/en.yml +0 -33
  261. data/test_apps/dummy_roro/config/puma.rb +0 -34
  262. data/test_apps/dummy_roro/config/routes.rb +0 -3
  263. data/test_apps/dummy_roro/config/spring.rb +0 -6
  264. data/test_apps/dummy_roro/config/storage.yml +0 -34
  265. data/test_apps/dummy_roro/db/seeds.rb +0 -7
  266. data/test_apps/dummy_roro/docker-compose.yml +0 -51
  267. data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
  268. data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
  269. data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
  270. data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
  271. data/test_apps/dummy_roro/docker/containers/app/staging.env +0 -2
  272. data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
  273. data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
  274. data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
  275. data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
  276. data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
  277. data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
  278. data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
  279. data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
  280. data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
  281. data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
  282. data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
  283. data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
  284. data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
  285. data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
  286. data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
  287. data/test_apps/dummy_roro/docker/keys/.keep +0 -0
  288. data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
  289. data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
  290. data/test_apps/dummy_roro/lib/assets/.keep +0 -0
  291. data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
  292. data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
  293. data/test_apps/dummy_roro/log/.keep +0 -0
  294. data/test_apps/dummy_roro/package.json +0 -5
  295. data/test_apps/dummy_roro/public/404.html +0 -67
  296. data/test_apps/dummy_roro/public/422.html +0 -67
  297. data/test_apps/dummy_roro/public/500.html +0 -66
  298. data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
  299. data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
  300. data/test_apps/dummy_roro/public/favicon.ico +0 -0
  301. data/test_apps/dummy_roro/public/robots.txt +0 -1
  302. data/test_apps/dummy_roro/storage/.keep +0 -0
  303. data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
  304. data/test_apps/dummy_roro/test/controllers/.keep +0 -0
  305. data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
  306. data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
  307. data/test_apps/dummy_roro/test/helpers/.keep +0 -0
  308. data/test_apps/dummy_roro/test/integration/.keep +0 -0
  309. data/test_apps/dummy_roro/test/mailers/.keep +0 -0
  310. data/test_apps/dummy_roro/test/models/.keep +0 -0
  311. data/test_apps/dummy_roro/test/system/.keep +0 -0
  312. data/test_apps/dummy_roro/test/test_helper.rb +0 -10
  313. data/test_apps/dummy_roro/tmp/.keep +0 -0
  314. data/test_apps/dummy_roro/vendor/.keep +0 -0
  315. data/test_apps/greenfield/.keep +0 -0
  316. data/vendor/cache/actionpack-5.2.2.gem +0 -0
  317. data/vendor/cache/actionview-5.2.2.gem +0 -0
  318. data/vendor/cache/activesupport-5.2.2.gem +0 -0
  319. data/vendor/cache/addressable-2.5.2.gem +0 -0
  320. data/vendor/cache/builder-3.2.3.gem +0 -0
  321. data/vendor/cache/coderay-1.1.2.gem +0 -0
  322. data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
  323. data/vendor/cache/crass-1.0.4.gem +0 -0
  324. data/vendor/cache/erubi-1.8.0.gem +0 -0
  325. data/vendor/cache/ffi-1.9.25.gem +0 -0
  326. data/vendor/cache/guard-2.15.0.gem +0 -0
  327. data/vendor/cache/i18n-1.3.0.gem +0 -0
  328. data/vendor/cache/launchy-2.4.3.gem +0 -0
  329. data/vendor/cache/listen-3.1.5.gem +0 -0
  330. data/vendor/cache/loofah-2.2.3.gem +0 -0
  331. data/vendor/cache/lumberjack-1.0.13.gem +0 -0
  332. data/vendor/cache/method_source-0.9.2.gem +0 -0
  333. data/vendor/cache/minitest-5.11.3.gem +0 -0
  334. data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
  335. data/vendor/cache/multi_json-1.13.1.gem +0 -0
  336. data/vendor/cache/net-scp-1.2.1.gem +0 -0
  337. data/vendor/cache/net-ssh-5.2.0.gem +0 -0
  338. data/vendor/cache/notiffany-0.1.1.gem +0 -0
  339. data/vendor/cache/pry-0.12.2.gem +0 -0
  340. data/vendor/cache/public_suffix-3.0.3.gem +0 -0
  341. data/vendor/cache/rack-2.0.6.gem +0 -0
  342. data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
  343. data/vendor/cache/railties-5.2.2.gem +0 -0
  344. data/vendor/cache/rake-10.5.0.gem +0 -0
  345. data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
  346. data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
  347. data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
  348. data/vendor/cache/shoulda-3.6.0.gem +0 -0
  349. data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
  350. data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
  351. data/vendor/cache/sorcerer-1.0.2.gem +0 -0
  352. data/vendor/cache/thor-0.20.3.gem +0 -0
  353. 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: 999f9916a8bcac4281835fbec6b843e19436b62c43e103945a9e5ebcf09d741e
4
- data.tar.gz: f6484791b8829df9c2d8a776a86e9ec4e1b0e1afba35cd92df60ab73faced09b
3
+ metadata.gz: d1748207f4c1b87ab2301b252cd90eac18dc36107544b404b031e9ba9b0df62f
4
+ data.tar.gz: eda27e549ca1789b75f5f0af646415b92c8c82f5e3b05dcf612a7d591326c33d
5
5
  SHA512:
6
- metadata.gz: c136c9d690376e0d82e6f79e71a2485854b77caf640e81b634509e336f0a1f4b3a615e7ff84982b4008bacb9bdbfa33107b42b28ab1b04052dcfc1bd51c4bf9f
7
- data.tar.gz: 46087ecabf31acd42ddc93922518053279ec1519488919608a658e38c2491d9ed498fba1d56b7f68e603dcea4c410b7775f9b7d78ac0d9f5a79773b222fcf7a9
6
+ metadata.gz: ec101f6fba2f50fe296792633d606e3ee2a0680e798c7fef0508706ef37d58dd979f04ea6be7e0fffe044596315aca2933d9ca7416d5694b4f083b18de923182
7
+ data.tar.gz: 3b89bd8d48d381ef5461deb8b99712cea71a8c2708cc32fdd5c195f931001736598ca48ddbebc0269f09e6c7cbd9e5294e7c7fcb943c1627b8c48e5bdcdae684
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
@@ -2,16 +2,19 @@
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: '',
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$})
14
14
  watch(%r{^lib/roro/cli/(.+)\.rb$}) { |m| "test/generators/#{m[1]}_test.rb" }
15
+ watch(%r{^lib/roro/cli/rollon/*.rb$}) { 'test/generators' }
16
+ watch(%r{^lib/roro/cli/(.+).rb$}) { 'test' }
17
+
15
18
 
16
19
  watch(%r{^test/thor_helper\.rb$}) { 'test' }
17
20
 
@@ -1,5 +1,5 @@
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
5
  require 'roro/cli/generate_keys'
@@ -15,7 +15,5 @@ module Roro
15
15
  def self.source_root
16
16
  File.dirname(__FILE__) + '/cli/templates'
17
17
  end
18
-
19
-
20
18
  end
21
19
  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,30 @@
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_roro
20
+ directory 'base/roro/containers/app', "roro/containers/#{@env_hash[:app_name]}", @env_hash
21
+ directory 'base/roro/containers/database', "roro/containers/#{@env_hash[:database_container]}", @env_hash
22
+ directory 'base/roro/containers/frontend', "roro/containers/#{@env_hash[:frontend_container]}", @env_hash
23
+ end
24
+
25
+ def copy_database_yml_pg
26
+ copy_file "base/config/database.yml.pg", 'config/database.yml', force: @env_hash[:use_force]
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,118 @@
1
+
2
+ module Roro
3
+
4
+ class CLI < Thor
5
+
6
+ no_commands do
7
+
8
+ def get_configuration_variables(hash={})
9
+ options["interactive"] ? set_interactively : set_from_defaults
10
+ hash.each { |k,v| @env_hash[k] = v } unless hash.nil?
11
+ @env_hash[:deploy_tag] = "${CIRCLE_SHA1:0:7}"
12
+ @env_hash[:server_port] = "22"
13
+ @env_hash[:server_user] = "root"
14
+ @env_hash
15
+ end
16
+
17
+ def set_from_defaults
18
+ @env_hash = configuration_hash
19
+ @env_hash.map do |key, hash|
20
+ @env_hash[key] = hash.values.last
21
+ end
22
+ @env_hash
23
+ end
24
+
25
+ def set_interactively
26
+ @env_hash = configuration_hash
27
+ @env_hash.map do |key, prompt|
28
+ answer = ask("Please provide #{prompt.keys.first} or hit enter to accept: \[ #{prompt.values.first} \]")
29
+ @env_hash[key] = (answer == "") ? prompt.values.first : answer
30
+ end
31
+ end
32
+
33
+ def confirm_dependencies
34
+ dependencies = [
35
+ {
36
+ system_query: "which docker",
37
+ warning: "Docker isn't installed",
38
+ suggestion: "https://docs.docker.com/install/"
39
+ }, {
40
+ system_query: "which docker-compose",
41
+ warning: "Docker Compose isn't installed",
42
+ suggestion: "https://docs.docker.com/compose/install/"
43
+
44
+ }, {
45
+ system_query: "docker info",
46
+ warning: "the Docker daemon isn't running",
47
+ suggestion: "https://docs.docker.com/config/daemon/#start-the-daemon-manually"
48
+ }
49
+ ]
50
+
51
+ dependencies.each do |dependency|
52
+ confirm_dependency(dependency)
53
+ end
54
+ end
55
+
56
+
57
+
58
+ def confirm_dependency(options)
59
+ msg = []
60
+ msg << ""
61
+ msg << delineator
62
+ msg << "It looks like #{options[:warning]}. The following bash command returns false:"
63
+ msg << "\t$ #{options[:system_query]}"
64
+ msg << "Please try these instructions:"
65
+ msg << ("\t" + options[:suggestion])
66
+ msg << delineator
67
+ conditional = options[:conditional] ? eval(options[:conditional]) : system(options[:system_query])
68
+ if conditional == false
69
+ raise(Roro::Error.new(msg.join("\n\n")))
70
+ end
71
+ end
72
+
73
+
74
+ private
75
+
76
+ def configuration_hash
77
+ {
78
+ app_name: {
79
+ "the name of your app" => `pwd`.split('/').last.strip!
80
+ },
81
+ ruby_version: {
82
+ "the version of ruby you'd like" => `ruby -v`.scan(/\d.\d/).first
83
+ },
84
+ server_host: {
85
+ "the ip address of your server" => "ip-address-of-your-server"
86
+ },
87
+ database_container: {
88
+ "the name of your database container" => "database"
89
+ },
90
+ frontend_container: {
91
+ "the name of your frontend container" => "frontend"
92
+ },
93
+ server_container: {
94
+ "the name of your server container" => "nginx"
95
+ },
96
+ dockerhub_email: {
97
+ "your Docker Hub email" => "your-docker-hub-email"
98
+ },
99
+ dockerhub_user: {
100
+ "your Docker Hub username" => "your-docker-hub-user-name"
101
+ },
102
+ dockerhub_org: {
103
+ "your Docker Hub organization name" => "your-docker-hub-org-name"
104
+ },
105
+ dockerhub_password: {
106
+ "your Docker Hub password" => "your-docker-hub-password"
107
+ },
108
+ postgres_user: {
109
+ "your Postgres username" => "postgres"
110
+ },
111
+ postgres_password: {
112
+ "your Postgres password" => "your-postgres-password"
113
+ }
114
+ }
115
+ end
116
+ end
117
+ end
118
+ 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", force: @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,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
@@ -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,85 +11,31 @@ 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
17
  confirm_dependencies
18
+ confirm_dependency({
19
+ system_query: "ls -A",
20
+ 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",
21
+ suggestion: "$ roro greenfield --force",
22
+ conditional: "Dir.glob('*').empty?" })
23
+ get_configuration_variables
18
24
  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'
25
+ copy_greenfield_to_host
26
+ @env_hash[:use_force] = { force: true }
27
+ rollon
25
28
  end
26
-
29
+
27
30
  no_commands do
28
-
29
- def as_system(command)
30
- command = OS.linux? ? "sudo #{command}" : command
31
- system command
32
- end
33
-
34
- def chown_if_required()
35
- 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.",
36
- action = "system 'sudo chown -R $USER .'"
37
- msg = []
38
- msg << ""
39
- msg << delineator
40
- msg << warning
41
- msg << ""
42
- msg.join("\n\n")
43
- puts msg
44
- eval(action)
45
- end
46
-
47
- def delineator
48
- ("-" * 80)
49
- end
50
-
51
- def confirm_dependency(options)
52
- msg = []
53
- msg << ""
54
- msg << delineator
55
- msg << "It looks like #{options[:warning]}. The following bash command returns false:"
56
- msg << "\t$ #{options[:system_query]}"
57
- msg << "Please try these instructions:"
58
- msg << ("\t" + options[:suggestion])
59
- msg << delineator
60
- conditional = options[:conditional] ? eval(options[:conditional]) : system(options[:system_query])
61
- if conditional == false
62
- raise(Roro::Error.new(msg.join("\n\n")))
63
- end
31
+
32
+ def copy_greenfield_files
33
+ template 'greenfield/Dockerfile.tt', 'Dockerfile', @env_hash
34
+ template 'greenfield/docker-compose.yml.tt', 'docker-compose.yml', @env_hash
64
35
  end
65
-
66
- def confirm_dependencies
67
- dependencies = [
68
- {
69
- system_query: "ls -A",
70
- 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",
71
- suggestion: "$ roro greenfield --force",
72
- conditional: "Dir.glob('*').empty?"
73
- }, {
74
-
75
- system_query: "which docker",
76
- warning: "Docker isn't installed",
77
- suggestion: "https://docs.docker.com/install/"
78
- }, {
79
- system_query: "which docker-compose",
80
- warning: "Docker Compose isn't installed",
81
- suggestion: "https://docs.docker.com/compose/install/"
82
-
83
- }, {
84
- system_query: "docker info",
85
- warning: "the Docker daemon isn't running",
86
- suggestion: "https://docs.docker.com/config/daemon/#start-the-daemon-manually"
87
- }
88
- ]
89
-
90
- dependencies.each do |dependency|
91
- confirm_dependency(dependency)
92
- end
36
+
37
+ def copy_greenfield_to_host
38
+ system "DOCKER_BUILDKIT=1 docker build --file Dockerfile --output . ."
93
39
  end
94
40
  end
95
41
  end
@@ -1,21 +1,38 @@
1
+ require_relative 'rollon/stories'
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
- method_option :interactive, desc: "Set up your environment variables as you go."
7
+ desc "rollon", "Generates files and makes changes to your rails app
8
+ necessary to run it using Docker containers."
9
+ method_option :interactive, desc: "Set up your environment variables as
10
+ you go."
8
11
 
9
12
  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
-
13
+ confirm_dependencies
14
+ confirm_dependency({
15
+ system_query: "ls -A",
16
+ warning: "This is an empty directory. You can generate a new and fully
17
+ dockerized Rails app using the 'greenfield' command here here but if
18
+ you want to containerize an existing app -- which is what the 'rollon'
19
+ command is for -- you'll need to navigate to a directory with an app we
20
+ can roll onto.",
21
+ suggestion: "$ roro greenfield",
22
+ conditional: "!Dir.glob('*').empty?" })
23
+ @env_hash || get_configuration_variables
24
+ # 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) })
25
+ # when '1'
26
+ # rollon_as_quickstart
27
+ # when '2'
28
+ # rollon_as_dockerized
29
+ # when '3'
30
+ # end
31
+ rollon_as_dockerize
32
+ end
33
+
34
+ no_commands do
35
+
19
36
  end
20
37
  end
21
- end
38
+ end