shopify-cli 1.5.0 → 1.9.0

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 (305) hide show
  1. checksums.yaml +4 -4
  2. data/.github/PULL_REQUEST_TEMPLATE.md +1 -0
  3. data/.rubocop_todo.yml +15 -2
  4. data/.travis.yml +1 -0
  5. data/CHANGELOG.md +26 -0
  6. data/Gemfile +12 -12
  7. data/Gemfile.lock +14 -14
  8. data/README.md +39 -7
  9. data/Rakefile +32 -28
  10. data/bin/load_shopify.rb +6 -6
  11. data/bin/shopify +2 -2
  12. data/dev.yml +5 -2
  13. data/docs/_config.yml +1 -18
  14. data/docs/app/node/commands/index.md +2 -80
  15. data/docs/app/node/index.md +2 -33
  16. data/docs/app/rails/commands/index.md +2 -78
  17. data/docs/app/rails/index.md +2 -34
  18. data/docs/core/index.md +2 -84
  19. data/docs/getting-started/index.md +2 -25
  20. data/docs/getting-started/install/index.md +1 -118
  21. data/docs/getting-started/migrate/index.md +2 -94
  22. data/docs/getting-started/uninstall/index.md +2 -35
  23. data/docs/getting-started/upgrade/index.md +2 -39
  24. data/docs/help/start-app/index.md +2 -4
  25. data/docs/index.md +2 -24
  26. data/ext/shopify-cli/extconf.rb +7 -7
  27. data/install.sh +1 -1
  28. data/lib/docgen/markdown.rb +12 -12
  29. data/lib/graphql/extension_create.graphql +17 -2
  30. data/lib/graphql/fetch_specifications.graphql +14 -0
  31. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  32. data/lib/project_types/extension/cli.rb +56 -48
  33. data/lib/project_types/extension/commands/build.rb +3 -3
  34. data/lib/project_types/extension/commands/create.rb +17 -10
  35. data/lib/project_types/extension/commands/extension_command.rb +14 -7
  36. data/lib/project_types/extension/commands/push.rb +10 -10
  37. data/lib/project_types/extension/commands/register.rb +22 -32
  38. data/lib/project_types/extension/commands/serve.rb +1 -7
  39. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  40. data/lib/project_types/extension/extension_project.rb +22 -7
  41. data/lib/project_types/extension/extension_project_keys.rb +5 -4
  42. data/lib/project_types/extension/features/argo.rb +123 -0
  43. data/lib/project_types/extension/features/argo_config.rb +5 -5
  44. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  45. data/lib/project_types/extension/features/argo_renderer_package.rb +32 -0
  46. data/lib/project_types/extension/features/argo_serve.rb +69 -0
  47. data/lib/project_types/extension/features/argo_setup.rb +2 -2
  48. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  49. data/lib/project_types/extension/forms/create.rb +28 -34
  50. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  51. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  52. data/lib/project_types/extension/forms/questions/ask_type.rb +47 -0
  53. data/lib/project_types/extension/messages/message_loading.rb +3 -1
  54. data/lib/project_types/extension/messages/messages.rb +55 -52
  55. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  56. data/lib/project_types/extension/models/registration.rb +1 -0
  57. data/lib/project_types/extension/models/specification.rb +39 -0
  58. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +19 -0
  59. data/lib/project_types/extension/models/specification_handlers/default.rb +75 -0
  60. data/lib/project_types/extension/models/specifications.rb +88 -0
  61. data/lib/project_types/extension/tasks/configure_features.rb +54 -0
  62. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  63. data/lib/project_types/extension/tasks/converters/registration_converter.rb +8 -6
  64. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  65. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  66. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  67. data/lib/project_types/extension/tasks/fetch_specifications.rb +18 -0
  68. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  69. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  70. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  71. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  72. data/lib/project_types/node/cli.rb +19 -19
  73. data/lib/project_types/node/commands/connect.rb +3 -3
  74. data/lib/project_types/node/commands/create.rb +42 -38
  75. data/lib/project_types/node/commands/deploy.rb +4 -4
  76. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  77. data/lib/project_types/node/commands/generate.rb +3 -34
  78. data/lib/project_types/node/commands/open.rb +2 -2
  79. data/lib/project_types/node/commands/populate.rb +6 -6
  80. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  81. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  82. data/lib/project_types/node/commands/populate/product.rb +5 -5
  83. data/lib/project_types/node/commands/serve.rb +9 -9
  84. data/lib/project_types/node/commands/tunnel.rb +7 -7
  85. data/lib/project_types/node/forms/create.rb +17 -8
  86. data/lib/project_types/node/messages/messages.rb +13 -47
  87. data/lib/project_types/rails/cli.rb +21 -21
  88. data/lib/project_types/rails/commands/connect.rb +3 -3
  89. data/lib/project_types/rails/commands/create.rb +56 -54
  90. data/lib/project_types/rails/commands/deploy.rb +4 -4
  91. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  92. data/lib/project_types/rails/commands/generate.rb +7 -7
  93. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  94. data/lib/project_types/rails/commands/open.rb +2 -2
  95. data/lib/project_types/rails/commands/populate.rb +6 -6
  96. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  97. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  98. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  99. data/lib/project_types/rails/commands/serve.rb +11 -11
  100. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  101. data/lib/project_types/rails/forms/create.rb +35 -25
  102. data/lib/project_types/rails/gem.rb +24 -24
  103. data/lib/project_types/rails/messages/messages.rb +6 -5
  104. data/lib/project_types/rails/ruby.rb +2 -2
  105. data/lib/project_types/script/cli.rb +38 -39
  106. data/lib/project_types/script/commands/create.rb +12 -14
  107. data/lib/project_types/script/commands/push.rb +10 -17
  108. data/lib/project_types/script/config/extension_points.yml +29 -10
  109. data/lib/project_types/script/errors.rb +1 -2
  110. data/lib/project_types/script/forms/create.rb +18 -5
  111. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +9 -1
  112. data/lib/project_types/script/graphql/script_service_proxy.graphql +1 -2
  113. data/lib/project_types/script/layers/application/build_script.rb +10 -7
  114. data/lib/project_types/script/layers/application/create_script.rb +37 -25
  115. data/lib/project_types/script/layers/application/extension_points.rb +25 -0
  116. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  117. data/lib/project_types/script/layers/application/push_script.rb +13 -18
  118. data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
  119. data/lib/project_types/script/layers/domain/errors.rb +20 -0
  120. data/lib/project_types/script/layers/domain/extension_point.rb +82 -11
  121. data/lib/project_types/script/layers/domain/metadata.rb +48 -0
  122. data/lib/project_types/script/layers/domain/push_package.rb +25 -6
  123. data/lib/project_types/script/layers/domain/script_project.rb +34 -0
  124. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +42 -13
  125. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +24 -49
  126. data/lib/project_types/script/layers/infrastructure/errors.rb +32 -19
  127. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +12 -6
  128. data/lib/project_types/script/layers/infrastructure/project_creator.rb +2 -1
  129. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +22 -17
  130. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +72 -0
  131. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +59 -0
  132. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +145 -0
  133. data/lib/project_types/script/layers/infrastructure/script_service.rb +32 -75
  134. data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
  135. data/lib/project_types/script/messages/messages.rb +58 -59
  136. data/lib/project_types/script/ui/error_handler.rb +115 -72
  137. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  138. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  139. data/lib/project_types/theme/cli.rb +40 -0
  140. data/lib/project_types/theme/commands/connect.rb +54 -0
  141. data/lib/project_types/theme/commands/create.rb +48 -0
  142. data/lib/project_types/theme/commands/deploy.rb +38 -0
  143. data/lib/project_types/theme/commands/generate.rb +20 -0
  144. data/lib/project_types/theme/commands/generate/env.rb +79 -0
  145. data/lib/project_types/theme/commands/push.rb +55 -0
  146. data/lib/project_types/theme/commands/serve.rb +31 -0
  147. data/lib/project_types/theme/forms/connect.rb +34 -0
  148. data/lib/project_types/theme/forms/create.rb +22 -0
  149. data/lib/project_types/theme/messages/messages.rb +147 -0
  150. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +78 -0
  151. data/lib/project_types/theme/themekit.rb +113 -0
  152. data/lib/rubygems_plugin.rb +3 -3
  153. data/lib/shopify-cli/admin_api.rb +52 -12
  154. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  155. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  156. data/lib/shopify-cli/api.rb +34 -31
  157. data/lib/shopify-cli/command.rb +1 -1
  158. data/lib/shopify-cli/commands.rb +9 -9
  159. data/lib/shopify-cli/commands/config.rb +28 -52
  160. data/lib/shopify-cli/commands/connect.rb +10 -10
  161. data/lib/shopify-cli/commands/create.rb +5 -5
  162. data/lib/shopify-cli/commands/help.rb +6 -6
  163. data/lib/shopify-cli/commands/logout.rb +3 -3
  164. data/lib/shopify-cli/commands/system.rb +33 -33
  165. data/lib/shopify-cli/commands/version.rb +2 -2
  166. data/lib/shopify-cli/context.rb +71 -22
  167. data/lib/shopify-cli/core.rb +4 -4
  168. data/lib/shopify-cli/core/entry_point.rb +5 -5
  169. data/lib/shopify-cli/core/executor.rb +1 -1
  170. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  171. data/lib/shopify-cli/core/monorail.rb +16 -16
  172. data/lib/shopify-cli/db.rb +2 -2
  173. data/lib/shopify-cli/feature.rb +1 -3
  174. data/lib/shopify-cli/form.rb +1 -1
  175. data/lib/shopify-cli/git.rb +17 -17
  176. data/lib/shopify-cli/helpers.rb +1 -1
  177. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  178. data/lib/shopify-cli/heroku.rb +28 -28
  179. data/lib/shopify-cli/http_request.rb +21 -9
  180. data/lib/shopify-cli/js_deps.rb +12 -12
  181. data/lib/shopify-cli/js_system.rb +5 -5
  182. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  183. data/lib/shopify-cli/messages/messages.rb +9 -16
  184. data/lib/shopify-cli/method_object.rb +104 -0
  185. data/lib/shopify-cli/oauth.rb +25 -25
  186. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  187. data/lib/shopify-cli/options.rb +3 -3
  188. data/lib/shopify-cli/packager.rb +24 -24
  189. data/lib/shopify-cli/partners_api.rb +24 -18
  190. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  191. data/lib/shopify-cli/process_supervision.rb +7 -7
  192. data/lib/shopify-cli/project.rb +16 -16
  193. data/lib/shopify-cli/project_type.rb +4 -4
  194. data/lib/shopify-cli/resolve_constant.rb +25 -0
  195. data/lib/shopify-cli/resources.rb +1 -1
  196. data/lib/shopify-cli/resources/env_file.rb +9 -9
  197. data/lib/shopify-cli/result.rb +432 -0
  198. data/lib/shopify-cli/shopifolk.rb +6 -8
  199. data/lib/shopify-cli/sub_command.rb +1 -1
  200. data/lib/shopify-cli/task.rb +3 -3
  201. data/lib/shopify-cli/tasks.rb +7 -7
  202. data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
  203. data/lib/shopify-cli/tasks/ensure_dev_store.rb +12 -12
  204. data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
  205. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  206. data/lib/shopify-cli/tasks/select_org_and_shop.rb +25 -24
  207. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  208. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  209. data/lib/shopify-cli/tunnel.rb +36 -30
  210. data/lib/shopify-cli/version.rb +1 -1
  211. data/lib/shopify_cli.rb +57 -52
  212. data/shopify-cli.gemspec +6 -6
  213. data/shopify.fish +1 -1
  214. data/shopify.sh +1 -1
  215. data/vendor/deps/cli-kit/REVISION +1 -1
  216. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +2 -2
  217. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +3 -3
  218. data/vendor/deps/cli-ui/REVISION +1 -1
  219. data/vendor/deps/cli-ui/lib/cli/ui.rb +26 -22
  220. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +4 -6
  221. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +3 -3
  222. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +8 -9
  223. data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +1 -1
  224. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +1 -0
  225. data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +15 -3
  226. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +4 -11
  227. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +3 -5
  228. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +10 -10
  229. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +1 -1
  230. data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +56 -0
  231. data/vendor/deps/webrick/.gitignore +9 -0
  232. data/vendor/deps/webrick/Gemfile +3 -0
  233. data/vendor/deps/webrick/LICENSE.txt +22 -0
  234. data/vendor/deps/webrick/README.md +61 -0
  235. data/vendor/deps/webrick/Rakefile +10 -0
  236. data/vendor/deps/webrick/lib/webrick.rb +232 -0
  237. data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
  238. data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
  239. data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
  240. data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
  241. data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
  242. data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
  243. data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
  244. data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
  245. data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
  246. data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
  247. data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
  248. data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
  249. data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
  250. data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
  251. data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
  252. data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
  253. data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
  254. data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
  255. data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
  256. data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
  257. data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
  258. data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  259. data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
  260. data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
  261. data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
  262. data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
  263. data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
  264. data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
  265. data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
  266. data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
  267. data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
  268. data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
  269. data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
  270. data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
  271. data/vendor/deps/webrick/webrick.gemspec +74 -0
  272. data/vendor/gen/template/bin/update-deps +9 -9
  273. metadata +83 -35
  274. data/docs/Gemfile +0 -5
  275. data/docs/Gemfile.lock +0 -258
  276. data/docs/_data/nav.yml +0 -35
  277. data/docs/_includes/footer.html +0 -15
  278. data/docs/_includes/head.html +0 -19
  279. data/docs/_includes/sidebar_nav.html +0 -22
  280. data/docs/_includes/toc.html +0 -112
  281. data/docs/_layouts/default.html +0 -79
  282. data/docs/css/docs.css +0 -157
  283. data/docs/images/header.png +0 -0
  284. data/docs/installing-ruby.md +0 -28
  285. data/lib/project_types/extension/features/argo/admin.rb +0 -20
  286. data/lib/project_types/extension/features/argo/base.rb +0 -129
  287. data/lib/project_types/extension/features/argo/checkout.rb +0 -20
  288. data/lib/project_types/extension/forms/register.rb +0 -47
  289. data/lib/project_types/extension/models/type.rb +0 -81
  290. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +0 -23
  291. data/lib/project_types/extension/models/types/product_subscription.rb +0 -24
  292. data/lib/project_types/node/commands/generate/billing.rb +0 -39
  293. data/lib/project_types/node/commands/generate/page.rb +0 -59
  294. data/lib/project_types/node/commands/generate/webhook.rb +0 -37
  295. data/lib/project_types/script/commands/disable.rb +0 -25
  296. data/lib/project_types/script/commands/enable.rb +0 -78
  297. data/lib/project_types/script/graphql/shop_script_delete.graphql +0 -14
  298. data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +0 -28
  299. data/lib/project_types/script/layers/application/disable_script.rb +0 -21
  300. data/lib/project_types/script/layers/application/enable_script.rb +0 -23
  301. data/lib/project_types/script/layers/domain/script.rb +0 -18
  302. data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -47
  303. data/lib/project_types/script/script_project.rb +0 -54
  304. data/lib/project_types/script/templates/ts/as-pect.config.js +0 -27
  305. data/lib/project_types/script/templates/ts/as-pect.d.ts +0 -1
@@ -21,9 +21,9 @@ module Node
21
21
  Usage: {{command:%s create node}}
22
22
  Options:
23
23
  {{command:--name=NAME}} App name. Any string.
24
- {{command:--app_url=APPURL}} App URL. Must be a valid URL.
25
- {{command:--organization_id=ID}} Partner organization ID. Must be an existing organization.
26
- {{command:--shop_domain=MYSHOPIFYDOMAIN }} Development store URL. Must be an existing development store.
24
+ {{command:--app-url=APPURL}} App URL. Must be a valid URL.
25
+ {{command:--organization-id=ID}} Partner organization ID. Must be an existing organization.
26
+ {{command:--shop-domain=MYSHOPIFYDOMAIN }} Development store URL. Must be an existing development store.
27
27
  HELP
28
28
  error: {
29
29
  node_required: "node is required to create an app project. Download at https://nodejs.org/en/download.",
@@ -83,52 +83,17 @@ module Node
83
83
 
84
84
  generate: {
85
85
  help: <<~HELP,
86
- Generate code in your Node project. Supports generating new billing API calls, new pages, or new webhooks.
87
- Usage: {{command:%s generate [ billing | page | webhook ]}}
88
- HELP
89
- extended_help: <<~EXAMPLES,
90
- {{bold:Examples:}}
91
- {{cyan:%s generate webhook PRODUCTS_CREATE}}
92
- Generate and register a new webhook that will be called every time a new product is created on your store.
93
- EXAMPLES
94
-
95
- error: {
96
- name_exists: "%s already exists!",
97
- generic: "Error generating %s",
98
- },
99
-
100
- billing: {
101
- help: <<~HELP,
102
- Enable charging for your app. This command generates the necessary code to call Shopify’s billing API.
103
- Usage: {{command:%s generate billing [ one-time-billing | recurring-billing ]}}
104
- HELP
105
- type_select: "How would you like to charge for your app?",
106
- generating: "Generating %s code ...",
107
- generated: "{{green:%s}} generated in server/server.js",
108
- },
86
+ {{red:The {{command:generate}} command is no longer supported.}}
87
+ You can complete any tasks previously supported by {{command:generate}} with these guides:
88
+ {{green:page}}
89
+ Create a page with Polaris design components: {{green:https://shopify.dev/tutorials/build-a-shopify-app-with-node-and-react/build-your-user-interface-with-polaris}}
109
90
 
110
- page: {
111
- help: <<~HELP,
112
- Generate a new page in your app with the specified name. New files are generated inside the project’s “/pages” directory.
113
- Usage: {{command:%s generate page <pagename>}}
114
- HELP
115
- error: {
116
- invalid_page_type: "Invalid page type.",
117
- },
118
- type_select: "Which template would you like to use?",
119
- generating: "Generating %s page...",
120
- generated: "{{green: %s}} generated in pages/%s",
121
- },
91
+ {{green:webhook}}
92
+ Register and process webhooks: {{green:https://github.com/Shopify/shopify-node-api/blob/main/docs/usage/webhooks.md}}
122
93
 
123
- webhook: {
124
- help: <<~HELP,
125
- Generate and register a new webhook that listens for the specified Shopify store event.
126
- Usage: {{command:%s generate webhook <type>}}
127
- HELP
128
- type_select: "What type of webhook would you like to create?",
129
- generating: "Generating webhook: %s",
130
- generated: "{{green:%s}} generated in server/server.js",
131
- },
94
+ {{green:billing}}
95
+ Create and manage app billing models: {{green:https://shopify.dev/tutorials/bill-for-your-app-using-graphql-admin-api}}
96
+ HELP
132
97
  },
133
98
 
134
99
  open: {
@@ -237,6 +202,7 @@ module Node
237
202
  forms: {
238
203
  create: {
239
204
  error: {
205
+ invalid_app_name: "App name cannot contain 'Shopify'",
240
206
  invalid_app_type: "Invalid app type %s",
241
207
  },
242
208
  app_name: "App name",
@@ -1,32 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
  module Rails
3
3
  class Project < ShopifyCli::ProjectType
4
- title('Ruby on Rails App')
5
- creator('Rails::Commands::Create')
6
- connector('Rails::Commands::Connect')
4
+ title("Ruby on Rails App")
5
+ creator("Rails::Commands::Create")
6
+ connector("Rails::Commands::Connect")
7
7
 
8
- register_command('Rails::Commands::Deploy', "deploy")
9
- register_command('Rails::Commands::Generate', "generate")
10
- register_command('Rails::Commands::Open', "open")
11
- register_command('Rails::Commands::Populate', "populate")
12
- register_command('Rails::Commands::Serve', "serve")
13
- register_command('Rails::Commands::Tunnel', "tunnel")
8
+ register_command("Rails::Commands::Deploy", "deploy")
9
+ register_command("Rails::Commands::Generate", "generate")
10
+ register_command("Rails::Commands::Open", "open")
11
+ register_command("Rails::Commands::Populate", "populate")
12
+ register_command("Rails::Commands::Serve", "serve")
13
+ register_command("Rails::Commands::Tunnel", "tunnel")
14
14
  # register_task('Rails::Tasks::RailsTask', 'rails_task')
15
15
 
16
- require Project.project_filepath('messages/messages')
16
+ require Project.project_filepath("messages/messages")
17
17
  register_messages(Rails::Messages::MESSAGES)
18
18
  end
19
19
 
20
20
  # define/autoload project specific Commands
21
21
  module Commands
22
- autoload :Connect, Project.project_filepath('commands/connect')
23
- autoload :Create, Project.project_filepath('commands/create')
24
- autoload :Deploy, Project.project_filepath('commands/deploy')
25
- autoload :Generate, Project.project_filepath('commands/generate')
26
- autoload :Open, Project.project_filepath('commands/open')
27
- autoload :Populate, Project.project_filepath('commands/populate')
28
- autoload :Serve, Project.project_filepath('commands/serve')
29
- autoload :Tunnel, Project.project_filepath('commands/tunnel')
22
+ autoload :Connect, Project.project_filepath("commands/connect")
23
+ autoload :Create, Project.project_filepath("commands/create")
24
+ autoload :Deploy, Project.project_filepath("commands/deploy")
25
+ autoload :Generate, Project.project_filepath("commands/generate")
26
+ autoload :Open, Project.project_filepath("commands/open")
27
+ autoload :Populate, Project.project_filepath("commands/populate")
28
+ autoload :Serve, Project.project_filepath("commands/serve")
29
+ autoload :Tunnel, Project.project_filepath("commands/tunnel")
30
30
  end
31
31
 
32
32
  # define/autoload project specific Tasks
@@ -35,9 +35,9 @@ module Rails
35
35
 
36
36
  # define/autoload project specific Forms
37
37
  module Forms
38
- autoload :Create, Project.project_filepath('forms/create')
38
+ autoload :Create, Project.project_filepath("forms/create")
39
39
  end
40
40
 
41
- autoload :Ruby, Project.project_filepath('ruby')
42
- autoload :Gem, Project.project_filepath('gem')
41
+ autoload :Ruby, Project.project_filepath("ruby")
42
+ autoload :Gem, Project.project_filepath("gem")
43
43
  end
@@ -4,11 +4,11 @@ module Rails
4
4
  class Connect < ShopifyCli::SubCommand
5
5
  def call(*)
6
6
  if ShopifyCli::Project.has_current? && ShopifyCli::Project.current.env
7
- @ctx.puts(@ctx.message('rails.connect.production_warning'))
7
+ @ctx.puts(@ctx.message("rails.connect.production_warning"))
8
8
  end
9
9
 
10
- app = ShopifyCli::Commands::Connect.new.default_connect('rails')
11
- @ctx.done(@ctx.message('rails.connect.connected', app))
10
+ app = ShopifyCli::Commands::Connect.new.default_connect("rails")
11
+ @ctx.done(@ctx.message("rails.connect.connected", app))
12
12
  end
13
13
  end
14
14
  end
@@ -14,21 +14,25 @@ module Rails
14
14
 
15
15
  options do |parser, flags|
16
16
  # backwards compatibility allow 'title' for now
17
- parser.on('--title=TITLE') { |t| flags[:title] = t }
18
- parser.on('--name=NAME') { |t| flags[:title] = t }
19
- parser.on('--organization_id=ID') { |url| flags[:organization_id] = url }
20
- parser.on('--shop_domain=MYSHOPIFYDOMAIN') { |url| flags[:shop_domain] = url }
21
- parser.on('--type=APPTYPE') { |url| flags[:type] = url }
22
- parser.on('--db=DB') { |db| flags[:db] = db }
23
- parser.on('--rails_opts=RAILSOPTS') { |opts| flags[:rails_opts] = opts }
17
+ parser.on("--title=TITLE") { |t| flags[:title] = t }
18
+ parser.on("--name=NAME") { |t| flags[:title] = t }
19
+ parser.on("--organization_id=ID") { |url| flags[:organization_id] = url }
20
+ parser.on("--organization-id=ID") { |url| flags[:organization_id] = url }
21
+ parser.on("--shop_domain=MYSHOPIFYDOMAIN") { |url| flags[:shop_domain] = url }
22
+ parser.on("--shop-domain=MYSHOPIFYDOMAIN") { |url| flags[:shop_domain] = url }
23
+ parser.on("--type=APPTYPE") { |url| flags[:type] = url }
24
+ parser.on("--db=DB") { |db| flags[:db] = db }
25
+ parser.on("--rails_opts=RAILSOPTS") { |opts| flags[:rails_opts] = opts }
26
+ parser.on("--rails-opts=RAILSOPTS") { |opts| flags[:rails_opts] = opts }
24
27
  end
25
28
 
26
29
  def call(args, _name)
27
30
  form = Forms::Create.ask(@ctx, args, options.flags)
28
31
  return @ctx.puts(self.class.help) if form.nil?
29
32
 
30
- @ctx.abort(@ctx.message('rails.create.error.invalid_ruby_version')) unless
31
- Ruby.version(@ctx).satisfies?('~>2.5')
33
+ ruby_version = Ruby.version(@ctx)
34
+ @ctx.abort(@ctx.message("rails.create.error.invalid_ruby_version")) unless
35
+ ruby_version.satisfies?("~>2.5") || ruby_version.satisfies?("~>3.0.0")
32
36
 
33
37
  check_node
34
38
  check_yarn
@@ -37,7 +41,7 @@ module Rails
37
41
  set_custom_ua
38
42
  ShopifyCli::Project.write(
39
43
  @ctx,
40
- project_type: 'rails',
44
+ project_type: "rails",
41
45
  organization_id: form.organization_id,
42
46
  )
43
47
 
@@ -52,72 +56,74 @@ module Rails
52
56
  api_key: api_client["apiKey"],
53
57
  secret: api_client["apiSecretKeys"].first["secret"],
54
58
  shop: form.shop_domain,
55
- scopes: 'write_products,write_customers,write_draft_orders',
59
+ scopes: "write_products,write_customers,write_draft_orders",
56
60
  ).write(@ctx)
57
61
 
58
- partners_url = ShopifyCli::PartnersAPI.partners_url_for(form.organization_id, api_client['id'], local_debug?)
62
+ partners_url = ShopifyCli::PartnersAPI.partners_url_for(form.organization_id, api_client["id"], local_debug?)
59
63
 
60
- @ctx.puts(@ctx.message('apps.create.info.created', form.title, partners_url))
61
- @ctx.puts(@ctx.message('apps.create.info.serve', form.name, ShopifyCli::TOOL_NAME))
62
- @ctx.puts(@ctx.message('apps.create.info.install', partners_url, form.title))
64
+ @ctx.puts(@ctx.message("apps.create.info.created", form.title, partners_url))
65
+ @ctx.puts(@ctx.message("apps.create.info.serve", form.name, ShopifyCli::TOOL_NAME))
66
+ unless ShopifyCli::Shopifolk.acting_as_shopify_organization?
67
+ @ctx.puts(@ctx.message("apps.create.info.install", partners_url, form.title))
68
+ end
63
69
  end
64
70
 
65
71
  def self.help
66
- ShopifyCli::Context.message('rails.create.help', ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
72
+ ShopifyCli::Context.message("rails.create.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
67
73
  end
68
74
 
69
75
  private
70
76
 
71
77
  def check_node
72
- cmd_path = @ctx.which('node')
78
+ cmd_path = @ctx.which("node")
73
79
  if cmd_path.nil?
74
- @ctx.abort(@ctx.message('rails.create.error.node_required')) unless @ctx.windows?
75
- @ctx.puts("{{x}} {{red:" + @ctx.message('rails.create.error.node_required') + "}}")
76
- @ctx.puts(@ctx.message('rails.create.info.open_new_shell', 'node'))
80
+ @ctx.abort(@ctx.message("rails.create.error.node_required")) unless @ctx.windows?
81
+ @ctx.puts("{{x}} {{red:" + @ctx.message("rails.create.error.node_required") + "}}")
82
+ @ctx.puts(@ctx.message("rails.create.info.open_new_shell", "node"))
77
83
  raise ShopifyCli::AbortSilent
78
84
  end
79
85
 
80
- version, stat = @ctx.capture2e('node', '-v')
86
+ version, stat = @ctx.capture2e("node", "-v")
81
87
  unless stat.success?
82
- @ctx.abort(@ctx.message('rails.create.error.node_version_failure')) unless @ctx.windows?
88
+ @ctx.abort(@ctx.message("rails.create.error.node_version_failure")) unless @ctx.windows?
83
89
  # execution stops above if not Windows
84
- @ctx.puts("{{x}} {{red:" + @ctx.message('rails.create.error.node_version_failure') + "}}")
85
- @ctx.puts(@ctx.message('rails.create.info.open_new_shell', 'node'))
90
+ @ctx.puts("{{x}} {{red:" + @ctx.message("rails.create.error.node_version_failure") + "}}")
91
+ @ctx.puts(@ctx.message("rails.create.info.open_new_shell", "node"))
86
92
  raise ShopifyCli::AbortSilent
87
93
  end
88
94
 
89
- @ctx.done(@ctx.message('rails.create.node_version', version))
95
+ @ctx.done(@ctx.message("rails.create.node_version", version))
90
96
  end
91
97
 
92
98
  def check_yarn
93
- cmd_path = @ctx.which('yarn')
99
+ cmd_path = @ctx.which("yarn")
94
100
  if cmd_path.nil?
95
- @ctx.abort(@ctx.message('rails.create.error.yarn_required')) unless @ctx.windows?
96
- @ctx.puts("{{x}} {{red:" + @ctx.message('rails.create.error.yarn_required') + "}}")
97
- @ctx.puts(@ctx.message('rails.create.info.open_new_shell', 'yarn'))
101
+ @ctx.abort(@ctx.message("rails.create.error.yarn_required")) unless @ctx.windows?
102
+ @ctx.puts("{{x}} {{red:" + @ctx.message("rails.create.error.yarn_required") + "}}")
103
+ @ctx.puts(@ctx.message("rails.create.info.open_new_shell", "yarn"))
98
104
  raise ShopifyCli::AbortSilent
99
105
  end
100
106
 
101
- version, stat = @ctx.capture2e('yarn', '-v')
107
+ version, stat = @ctx.capture2e("yarn", "-v")
102
108
  unless stat.success?
103
- @ctx.abort(@ctx.message('rails.create.error.yarn_version_failure')) unless @ctx.windows?
104
- @ctx.puts("{{x}} {{red:" + @ctx.message('rails.create.error.yarn_version_failure') + "}}")
105
- @ctx.puts(@ctx.message('rails.create.info.open_new_shell', 'yarn'))
109
+ @ctx.abort(@ctx.message("rails.create.error.yarn_version_failure")) unless @ctx.windows?
110
+ @ctx.puts("{{x}} {{red:" + @ctx.message("rails.create.error.yarn_version_failure") + "}}")
111
+ @ctx.puts(@ctx.message("rails.create.info.open_new_shell", "yarn"))
106
112
  raise ShopifyCli::AbortSilent
107
113
  end
108
114
 
109
- @ctx.done(@ctx.message('rails.create.yarn_version', version))
115
+ @ctx.done(@ctx.message("rails.create.yarn_version", version))
110
116
  end
111
117
 
112
118
  def build(name, db)
113
- @ctx.abort(@ctx.message('rails.create.error.install_failure', 'rails')) unless install_gem('rails')
114
- @ctx.abort(@ctx.message('rails.create.error.install_failure', 'bundler ~>2.0')) unless
115
- install_gem('bundler', '~>2.0')
119
+ @ctx.abort(@ctx.message("rails.create.error.install_failure", "rails")) unless install_gem("rails", "<6.1")
120
+ @ctx.abort(@ctx.message("rails.create.error.install_failure", "bundler ~>2.0")) unless
121
+ install_gem("bundler", "~>2.0")
116
122
 
117
123
  full_path = File.join(@ctx.root, name)
118
- @ctx.abort(@ctx.message('rails.create.error.dir_exists', name)) if Dir.exist?(full_path)
124
+ @ctx.abort(@ctx.message("rails.create.error.dir_exists", name)) if Dir.exist?(full_path)
119
125
 
120
- CLI::UI::Frame.open(@ctx.message('rails.create.generating_app', name)) do
126
+ CLI::UI::Frame.open(@ctx.message("rails.create.generating_app", name)) do
121
127
  new_command = %w(rails new)
122
128
  new_command += DEFAULT_RAILS_FLAGS
123
129
  new_command << "--database=#{db}"
@@ -129,38 +135,34 @@ module Rails
129
135
 
130
136
  @ctx.root = full_path
131
137
 
132
- File.open(File.join(@ctx.root, '.gitignore'), 'a') { |f| f.write('.env') }
138
+ File.open(File.join(@ctx.root, ".gitignore"), "a") { |f| f.write(".env") }
133
139
 
134
- @ctx.puts(@ctx.message('rails.create.adding_shopify_gem'))
135
- File.open(File.join(@ctx.root, 'Gemfile'), 'a') do |f|
136
- f.puts "\ngem 'shopify_app', '>=11.3.0'"
140
+ @ctx.puts(@ctx.message("rails.create.adding_shopify_gem"))
141
+ File.open(File.join(@ctx.root, "Gemfile"), "a") do |f|
142
+ f.puts "\ngem 'shopify_app', '>=17.0.3'"
137
143
  end
138
- CLI::UI::Frame.open(@ctx.message('rails.create.running_bundle_install')) do
144
+ CLI::UI::Frame.open(@ctx.message("rails.create.running_bundle_install")) do
139
145
  syscall(%w(bundle install))
140
146
  end
141
147
 
142
- CLI::UI::Frame.open(@ctx.message('rails.create.running_generator')) do
143
- begin
144
- syscall(%w(spring stop))
145
- rescue
146
- end
147
- syscall(%w(rails generate shopify_app))
148
+ CLI::UI::Frame.open(@ctx.message("rails.create.running_generator")) do
149
+ syscall(%w(rails generate shopify_app --new-shopify-cli-app))
148
150
  end
149
151
 
150
- CLI::UI::Frame.open(@ctx.message('rails.create.running_migrations')) do
152
+ CLI::UI::Frame.open(@ctx.message("rails.create.running_migrations")) do
151
153
  syscall(%w(rails db:create))
152
154
  syscall(%w(rails db:migrate RAILS_ENV=development))
153
155
  end
154
156
 
155
- unless File.exist?(File.join(@ctx.root, 'config/webpacker.yml'))
156
- CLI::UI::Frame.open(@ctx.message('rails.create.running_webpacker_install')) do
157
+ unless File.exist?(File.join(@ctx.root, "config/webpacker.yml"))
158
+ CLI::UI::Frame.open(@ctx.message("rails.create.running_webpacker_install")) do
157
159
  syscall(%w(rails webpacker:install))
158
160
  end
159
161
  end
160
162
  end
161
163
 
162
164
  def set_custom_ua
163
- ua_path = File.join('config', 'initializers', 'user_agent.rb')
165
+ ua_path = File.join("config", "initializers", "user_agent.rb")
164
166
  @ctx.write(ua_path, USER_AGENT_CODE)
165
167
  end
166
168
 
@@ -1,21 +1,21 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Rails
5
5
  module Commands
6
6
  class Deploy < ShopifyCli::Command
7
- subcommand :Heroku, 'heroku', Project.project_filepath('commands/deploy/heroku')
7
+ subcommand :Heroku, "heroku", Project.project_filepath("commands/deploy/heroku")
8
8
 
9
9
  def call(*)
10
10
  @ctx.puts(self.class.help)
11
11
  end
12
12
 
13
13
  def self.help
14
- ShopifyCli::Context.message('rails.deploy.help', ShopifyCli::TOOL_NAME)
14
+ ShopifyCli::Context.message("rails.deploy.help", ShopifyCli::TOOL_NAME)
15
15
  end
16
16
 
17
17
  def self.extended_help
18
- ShopifyCli::Context.message('rails.deploy.extended_help', ShopifyCli::TOOL_NAME)
18
+ ShopifyCli::Context.message("rails.deploy.extended_help", ShopifyCli::TOOL_NAME)
19
19
  end
20
20
  end
21
21
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'shopify_cli'
2
+ require "shopify_cli"
3
3
 
4
4
  module Rails
5
5
  module Commands
@@ -8,15 +8,15 @@ module Rails
8
8
  DB_CHECK_CMD = 'bundle exec rails runner "puts ActiveRecord::Base.connection.adapter_name.downcase"'
9
9
 
10
10
  def self.help
11
- ShopifyCli::Context.message('rails.deploy.heroku.help', ShopifyCli::TOOL_NAME)
11
+ ShopifyCli::Context.message("rails.deploy.heroku.help", ShopifyCli::TOOL_NAME)
12
12
  end
13
13
 
14
14
  def call(*)
15
- CLI::UI::Frame.open(@ctx.message('rails.deploy.heroku.db_check.validating')) do
16
- CLI::UI::Spinner.spin(@ctx.message('rails.deploy.heroku.db_check.checking')) do |spinner|
15
+ CLI::UI::Frame.open(@ctx.message("rails.deploy.heroku.db_check.validating")) do
16
+ CLI::UI::Spinner.spin(@ctx.message("rails.deploy.heroku.db_check.checking")) do |spinner|
17
17
  db_type, err = check_db(@ctx)
18
18
  @ctx.abort(@ctx.message(err)) unless err.nil?
19
- spinner.update_title(@ctx.message('rails.deploy.heroku.db_check.validated', db_type))
19
+ spinner.update_title(@ctx.message("rails.deploy.heroku.db_check.validated", db_type))
20
20
  end
21
21
  true
22
22
  end
@@ -24,53 +24,53 @@ module Rails
24
24
  spin_group = CLI::UI::SpinGroup.new
25
25
  heroku_service = ShopifyCli::Heroku.new(@ctx)
26
26
 
27
- spin_group.add(@ctx.message('rails.deploy.heroku.downloading')) do |spinner|
27
+ spin_group.add(@ctx.message("rails.deploy.heroku.downloading")) do |spinner|
28
28
  heroku_service.download
29
- spinner.update_title(@ctx.message('rails.deploy.heroku.downloaded'))
29
+ spinner.update_title(@ctx.message("rails.deploy.heroku.downloaded"))
30
30
  end
31
31
  spin_group.wait
32
32
 
33
- spin_group.add(@ctx.message('rails.deploy.heroku.installing')) do |spinner|
33
+ spin_group.add(@ctx.message("rails.deploy.heroku.installing")) do |spinner|
34
34
  heroku_service.install
35
- spinner.update_title(@ctx.message('rails.deploy.heroku.installed'))
35
+ spinner.update_title(@ctx.message("rails.deploy.heroku.installed"))
36
36
  end
37
- spin_group.add(@ctx.message('rails.deploy.heroku.git.checking')) do |spinner|
37
+ spin_group.add(@ctx.message("rails.deploy.heroku.git.checking")) do |spinner|
38
38
  ShopifyCli::Git.init(@ctx)
39
- spinner.update_title(@ctx.message('rails.deploy.heroku.git.initialized'))
39
+ spinner.update_title(@ctx.message("rails.deploy.heroku.git.initialized"))
40
40
  end
41
41
  spin_group.wait
42
42
 
43
43
  if (account = heroku_service.whoami)
44
- @ctx.puts(@ctx.message('rails.deploy.heroku.authenticated_with_account', account))
44
+ @ctx.puts(@ctx.message("rails.deploy.heroku.authenticated_with_account", account))
45
45
  else
46
46
  CLI::UI::Frame.open(
47
- @ctx.message('rails.deploy.heroku.authenticating'),
48
- success_text: @ctx.message('rails.deploy.heroku.authenticated')
47
+ @ctx.message("rails.deploy.heroku.authenticating"),
48
+ success_text: @ctx.message("rails.deploy.heroku.authenticated")
49
49
  ) do
50
50
  heroku_service.authenticate
51
51
  end
52
52
  end
53
53
 
54
54
  if (app_name = heroku_service.app)
55
- @ctx.puts(@ctx.message('rails.deploy.heroku.app.selected', app_name))
55
+ @ctx.puts(@ctx.message("rails.deploy.heroku.app.selected", app_name))
56
56
  else
57
- app_type = CLI::UI::Prompt.ask(@ctx.message('rails.deploy.heroku.app.no_apps_found')) do |handler|
58
- handler.option(@ctx.message('rails.deploy.heroku.app.create')) { :new }
59
- handler.option(@ctx.message('rails.deploy.heroku.app.select')) { :existing }
57
+ app_type = CLI::UI::Prompt.ask(@ctx.message("rails.deploy.heroku.app.no_apps_found")) do |handler|
58
+ handler.option(@ctx.message("rails.deploy.heroku.app.create")) { :new }
59
+ handler.option(@ctx.message("rails.deploy.heroku.app.select")) { :existing }
60
60
  end
61
61
 
62
62
  if app_type == :existing
63
- app_name = CLI::UI::Prompt.ask(@ctx.message('rails.deploy.heroku.app.name'))
63
+ app_name = CLI::UI::Prompt.ask(@ctx.message("rails.deploy.heroku.app.name"))
64
64
  CLI::UI::Frame.open(
65
- @ctx.message('rails.deploy.heroku.app.selecting', app_name),
66
- success_text: @ctx.message('rails.deploy.heroku.app.selected', app_name)
65
+ @ctx.message("rails.deploy.heroku.app.selecting", app_name),
66
+ success_text: @ctx.message("rails.deploy.heroku.app.selected", app_name)
67
67
  ) do
68
68
  heroku_service.select_existing_app(app_name)
69
69
  end
70
70
  elsif app_type == :new
71
71
  CLI::UI::Frame.open(
72
- @ctx.message('rails.deploy.heroku.app.creating'),
73
- success_text: @ctx.message('rails.deploy.heroku.app.created')
72
+ @ctx.message("rails.deploy.heroku.app.creating"),
73
+ success_text: @ctx.message("rails.deploy.heroku.app.created")
74
74
  ) do
75
75
  heroku_service.create_new_app
76
76
  end
@@ -80,9 +80,9 @@ module Rails
80
80
  branches = ShopifyCli::Git.branches(@ctx)
81
81
  if branches.length == 1
82
82
  branch_to_deploy = branches[0]
83
- @ctx.puts(@ctx.message('rails.deploy.heroku.git.branch_selected', branch_to_deploy))
83
+ @ctx.puts(@ctx.message("rails.deploy.heroku.git.branch_selected", branch_to_deploy))
84
84
  else
85
- branch_to_deploy = CLI::UI::Prompt.ask(@ctx.message('rails.deploy.heroku.git.what_branch')) do |handler|
85
+ branch_to_deploy = CLI::UI::Prompt.ask(@ctx.message("rails.deploy.heroku.git.what_branch")) do |handler|
86
86
  branches.each do |branch|
87
87
  handler.option(branch) { branch }
88
88
  end
@@ -90,8 +90,8 @@ module Rails
90
90
  end
91
91
 
92
92
  CLI::UI::Frame.open(
93
- @ctx.message('rails.deploy.heroku.deploying'),
94
- success_text: @ctx.message('rails.deploy.heroku.deployed')
93
+ @ctx.message("rails.deploy.heroku.deploying"),
94
+ success_text: @ctx.message("rails.deploy.heroku.deployed")
95
95
  ) do
96
96
  heroku_service.deploy(branch_to_deploy)
97
97
  end
@@ -99,10 +99,10 @@ module Rails
99
99
 
100
100
  def check_db(ctx)
101
101
  out, stat = ctx.capture2e(DB_CHECK_CMD)
102
- if stat.success? && out.strip == 'sqlite'
103
- ['sqlite', 'rails.deploy.heroku.db_check.sqlite']
102
+ if stat.success? && out.strip == "sqlite"
103
+ ["sqlite", "rails.deploy.heroku.db_check.sqlite"]
104
104
  elsif !stat.success?
105
- [nil, 'rails.deploy.heroku.db_check.problem']
105
+ [nil, "rails.deploy.heroku.db_check.problem"]
106
106
  else
107
107
  [out.strip, nil]
108
108
  end