shopify-cli 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile +12 -12
  4. data/Rakefile +32 -30
  5. data/bin/load_shopify.rb +6 -6
  6. data/bin/shopify +2 -2
  7. data/ext/shopify-cli/extconf.rb +7 -7
  8. data/lib/docgen/markdown.rb +11 -11
  9. data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
  10. data/lib/project_types/extension/cli.rb +52 -45
  11. data/lib/project_types/extension/commands/build.rb +3 -3
  12. data/lib/project_types/extension/commands/create.rb +16 -9
  13. data/lib/project_types/extension/commands/extension_command.rb +8 -5
  14. data/lib/project_types/extension/commands/push.rb +8 -8
  15. data/lib/project_types/extension/commands/register.rb +19 -30
  16. data/lib/project_types/extension/commands/serve.rb +2 -2
  17. data/lib/project_types/extension/commands/tunnel.rb +12 -12
  18. data/lib/project_types/extension/extension_project.rb +4 -4
  19. data/lib/project_types/extension/extension_project_keys.rb +4 -4
  20. data/lib/project_types/extension/features/argo.rb +13 -13
  21. data/lib/project_types/extension/features/argo_config.rb +5 -5
  22. data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
  23. data/lib/project_types/extension/features/argo_setup.rb +2 -2
  24. data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
  25. data/lib/project_types/extension/forms/create.rb +28 -34
  26. data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
  27. data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
  28. data/lib/project_types/extension/forms/questions/ask_type.rb +36 -0
  29. data/lib/project_types/extension/messages/messages.rb +53 -52
  30. data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
  31. data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +1 -1
  32. data/lib/project_types/extension/models/specification_handlers/default.rb +2 -2
  33. data/lib/project_types/extension/models/specifications.rb +3 -3
  34. data/lib/project_types/extension/tasks/configure_features.rb +4 -4
  35. data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
  36. data/lib/project_types/extension/tasks/converters/registration_converter.rb +6 -6
  37. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
  38. data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
  39. data/lib/project_types/extension/tasks/create_extension.rb +4 -4
  40. data/lib/project_types/extension/tasks/fetch_specifications.rb +4 -4
  41. data/lib/project_types/extension/tasks/get_app.rb +4 -4
  42. data/lib/project_types/extension/tasks/get_apps.rb +3 -3
  43. data/lib/project_types/extension/tasks/update_draft.rb +4 -4
  44. data/lib/project_types/extension/tasks/user_errors.rb +4 -4
  45. data/lib/project_types/node/cli.rb +19 -19
  46. data/lib/project_types/node/commands/connect.rb +3 -3
  47. data/lib/project_types/node/commands/create.rb +40 -38
  48. data/lib/project_types/node/commands/deploy.rb +4 -4
  49. data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
  50. data/lib/project_types/node/commands/generate.rb +8 -8
  51. data/lib/project_types/node/commands/open.rb +2 -2
  52. data/lib/project_types/node/commands/populate.rb +6 -6
  53. data/lib/project_types/node/commands/populate/customer.rb +5 -5
  54. data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
  55. data/lib/project_types/node/commands/populate/product.rb +5 -5
  56. data/lib/project_types/node/commands/serve.rb +9 -9
  57. data/lib/project_types/node/commands/tunnel.rb +7 -7
  58. data/lib/project_types/node/forms/create.rb +7 -7
  59. data/lib/project_types/node/messages/messages.rb +3 -3
  60. data/lib/project_types/rails/cli.rb +21 -21
  61. data/lib/project_types/rails/commands/connect.rb +3 -3
  62. data/lib/project_types/rails/commands/create.rb +51 -48
  63. data/lib/project_types/rails/commands/deploy.rb +4 -4
  64. data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
  65. data/lib/project_types/rails/commands/generate.rb +7 -7
  66. data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
  67. data/lib/project_types/rails/commands/open.rb +2 -2
  68. data/lib/project_types/rails/commands/populate.rb +6 -6
  69. data/lib/project_types/rails/commands/populate/customer.rb +5 -5
  70. data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
  71. data/lib/project_types/rails/commands/populate/product.rb +5 -5
  72. data/lib/project_types/rails/commands/serve.rb +11 -11
  73. data/lib/project_types/rails/commands/tunnel.rb +7 -7
  74. data/lib/project_types/rails/forms/create.rb +23 -23
  75. data/lib/project_types/rails/gem.rb +23 -23
  76. data/lib/project_types/rails/messages/messages.rb +4 -4
  77. data/lib/project_types/rails/ruby.rb +2 -2
  78. data/lib/project_types/script/cli.rb +40 -40
  79. data/lib/project_types/script/commands/create.rb +9 -8
  80. data/lib/project_types/script/commands/disable.rb +3 -3
  81. data/lib/project_types/script/commands/enable.rb +9 -7
  82. data/lib/project_types/script/commands/push.rb +5 -4
  83. data/lib/project_types/script/errors.rb +17 -0
  84. data/lib/project_types/script/forms/create.rb +5 -5
  85. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +2 -0
  86. data/lib/project_types/script/layers/application/build_script.rb +6 -8
  87. data/lib/project_types/script/layers/application/create_script.rb +2 -2
  88. data/lib/project_types/script/layers/application/disable_script.rb +2 -2
  89. data/lib/project_types/script/layers/application/enable_script.rb +2 -2
  90. data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
  91. data/lib/project_types/script/layers/application/push_script.rb +4 -12
  92. data/lib/project_types/script/layers/domain/push_package.rb +5 -1
  93. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +3 -3
  94. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +10 -10
  95. data/lib/project_types/script/layers/infrastructure/errors.rb +1 -1
  96. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +2 -2
  97. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +12 -17
  98. data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +4 -4
  99. data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +1 -1
  100. data/lib/project_types/script/layers/infrastructure/script_service.rb +18 -16
  101. data/lib/project_types/script/messages/messages.rb +14 -8
  102. data/lib/project_types/script/script_project.rb +27 -5
  103. data/lib/project_types/script/ui/error_handler.rb +80 -68
  104. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  105. data/lib/project_types/script/ui/strict_spinner.rb +1 -1
  106. data/lib/project_types/theme/cli.rb +19 -19
  107. data/lib/project_types/theme/commands/connect.rb +12 -12
  108. data/lib/project_types/theme/commands/create.rb +11 -11
  109. data/lib/project_types/theme/commands/deploy.rb +8 -8
  110. data/lib/project_types/theme/commands/generate.rb +3 -3
  111. data/lib/project_types/theme/commands/generate/env.rb +15 -15
  112. data/lib/project_types/theme/commands/push.rb +15 -15
  113. data/lib/project_types/theme/commands/serve.rb +5 -5
  114. data/lib/project_types/theme/forms/connect.rb +4 -4
  115. data/lib/project_types/theme/forms/create.rb +5 -5
  116. data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +22 -22
  117. data/lib/project_types/theme/themekit.rb +15 -15
  118. data/lib/rubygems_plugin.rb +3 -3
  119. data/lib/shopify-cli/admin_api.rb +11 -11
  120. data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
  121. data/lib/shopify-cli/admin_api/schema.rb +3 -3
  122. data/lib/shopify-cli/api.rb +10 -10
  123. data/lib/shopify-cli/command.rb +1 -1
  124. data/lib/shopify-cli/commands.rb +9 -9
  125. data/lib/shopify-cli/commands/config.rb +28 -52
  126. data/lib/shopify-cli/commands/connect.rb +10 -10
  127. data/lib/shopify-cli/commands/create.rb +5 -5
  128. data/lib/shopify-cli/commands/help.rb +6 -6
  129. data/lib/shopify-cli/commands/logout.rb +3 -3
  130. data/lib/shopify-cli/commands/system.rb +32 -32
  131. data/lib/shopify-cli/commands/version.rb +2 -2
  132. data/lib/shopify-cli/context.rb +23 -23
  133. data/lib/shopify-cli/core.rb +4 -4
  134. data/lib/shopify-cli/core/entry_point.rb +5 -5
  135. data/lib/shopify-cli/core/executor.rb +1 -1
  136. data/lib/shopify-cli/core/help_resolver.rb +2 -2
  137. data/lib/shopify-cli/core/monorail.rb +16 -16
  138. data/lib/shopify-cli/db.rb +2 -2
  139. data/lib/shopify-cli/feature.rb +1 -1
  140. data/lib/shopify-cli/form.rb +1 -1
  141. data/lib/shopify-cli/git.rb +17 -17
  142. data/lib/shopify-cli/helpers.rb +1 -1
  143. data/lib/shopify-cli/helpers/haikunator.rb +1 -1
  144. data/lib/shopify-cli/heroku.rb +28 -28
  145. data/lib/shopify-cli/http_request.rb +2 -2
  146. data/lib/shopify-cli/js_deps.rb +12 -12
  147. data/lib/shopify-cli/js_system.rb +5 -5
  148. data/lib/shopify-cli/lazy_delegator.rb +55 -0
  149. data/lib/shopify-cli/messages/messages.rb +4 -14
  150. data/lib/shopify-cli/oauth.rb +25 -25
  151. data/lib/shopify-cli/oauth/servlet.rb +9 -9
  152. data/lib/shopify-cli/options.rb +3 -3
  153. data/lib/shopify-cli/packager.rb +24 -24
  154. data/lib/shopify-cli/partners_api.rb +16 -16
  155. data/lib/shopify-cli/partners_api/organizations.rb +10 -10
  156. data/lib/shopify-cli/process_supervision.rb +7 -7
  157. data/lib/shopify-cli/project.rb +16 -16
  158. data/lib/shopify-cli/project_type.rb +3 -3
  159. data/lib/shopify-cli/resources.rb +1 -1
  160. data/lib/shopify-cli/resources/env_file.rb +9 -9
  161. data/lib/shopify-cli/result.rb +8 -8
  162. data/lib/shopify-cli/shopifolk.rb +6 -9
  163. data/lib/shopify-cli/sub_command.rb +1 -1
  164. data/lib/shopify-cli/task.rb +3 -3
  165. data/lib/shopify-cli/tasks.rb +7 -7
  166. data/lib/shopify-cli/tasks/create_api_client.rb +5 -5
  167. data/lib/shopify-cli/tasks/ensure_dev_store.rb +11 -11
  168. data/lib/shopify-cli/tasks/ensure_env.rb +15 -15
  169. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
  170. data/lib/shopify-cli/tasks/select_org_and_shop.rb +19 -19
  171. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
  172. data/lib/shopify-cli/transform_data_structure.rb +86 -0
  173. data/lib/shopify-cli/tunnel.rb +30 -30
  174. data/lib/shopify-cli/version.rb +1 -1
  175. data/lib/shopify_cli.rb +56 -54
  176. data/shopify-cli.gemspec +6 -6
  177. data/vendor/gen/template/bin/update-deps +9 -9
  178. metadata +9 -4
  179. data/lib/project_types/extension/forms/register.rb +0 -47
@@ -1,22 +1,22 @@
1
- require 'shopify_cli'
1
+ require "shopify_cli"
2
2
 
3
3
  module Rails
4
4
  module Commands
5
5
  class Populate < ShopifyCli::Command
6
- subcommand :Product, 'products', Project.project_filepath('commands/populate/product')
7
- subcommand :Customer, 'customers', Project.project_filepath('commands/populate/customer')
8
- subcommand :DraftOrder, 'draftorders', Project.project_filepath('commands/populate/draft_order')
6
+ subcommand :Product, "products", Project.project_filepath("commands/populate/product")
7
+ subcommand :Customer, "customers", Project.project_filepath("commands/populate/customer")
8
+ subcommand :DraftOrder, "draftorders", Project.project_filepath("commands/populate/draft_order")
9
9
 
10
10
  def call(_args, _name)
11
11
  @ctx.puts(self.class.help)
12
12
  end
13
13
 
14
14
  def self.help
15
- ShopifyCli::Context.message('rails.populate.help', ShopifyCli::TOOL_NAME)
15
+ ShopifyCli::Context.message("rails.populate.help", ShopifyCli::TOOL_NAME)
16
16
  end
17
17
 
18
18
  def self.extended_help
19
- ShopifyCli::Context.message('rails.populate.extended_help', ShopifyCli::TOOL_NAME)
19
+ ShopifyCli::Context.message("rails.populate.extended_help", ShopifyCli::TOOL_NAME)
20
20
  end
21
21
  end
22
22
  end
@@ -1,4 +1,4 @@
1
- require 'shopify_cli'
1
+ require "shopify_cli"
2
2
 
3
3
  module Rails
4
4
  module Commands
@@ -15,11 +15,11 @@ module Rails
15
15
  end
16
16
 
17
17
  def message(data)
18
- ret = data['customerCreate']['customer']
19
- id = ShopifyCli::API.gid_to_id(ret['id'])
18
+ ret = data["customerCreate"]["customer"]
19
+ id = ShopifyCli::API.gid_to_id(ret["id"])
20
20
  @ctx.message(
21
- 'rails.populate.customer.added',
22
- ret['displayName'],
21
+ "rails.populate.customer.added",
22
+ ret["displayName"],
23
23
  ShopifyCli::Project.current.env.shop,
24
24
  admin_url,
25
25
  id
@@ -1,4 +1,4 @@
1
- require 'shopify_cli'
1
+ require "shopify_cli"
2
2
 
3
3
  module Rails
4
4
  module Commands
@@ -11,16 +11,16 @@ module Rails
11
11
  lineItems: [{
12
12
  originalUnitPrice: price,
13
13
  quantity: 1,
14
- weight: { value: 10, unit: 'GRAMS' },
14
+ weight: { value: 10, unit: "GRAMS" },
15
15
  title: ShopifyCli::Helpers::Haikunator.title,
16
16
  }],
17
17
  }
18
18
  end
19
19
 
20
20
  def message(data)
21
- ret = data['draftOrderCreate']['draftOrder']
22
- id = ShopifyCli::API.gid_to_id(ret['id'])
23
- @ctx.message('rails.populate.draft_order.added', ShopifyCli::Project.current.env.shop, admin_url, id)
21
+ ret = data["draftOrderCreate"]["draftOrder"]
22
+ id = ShopifyCli::API.gid_to_id(ret["id"])
23
+ @ctx.message("rails.populate.draft_order.added", ShopifyCli::Project.current.env.shop, admin_url, id)
24
24
  end
25
25
  end
26
26
  end
@@ -1,4 +1,4 @@
1
- require 'shopify_cli'
1
+ require "shopify_cli"
2
2
 
3
3
  module Rails
4
4
  module Commands
@@ -14,11 +14,11 @@ module Rails
14
14
  end
15
15
 
16
16
  def message(data)
17
- ret = data['productCreate']['product']
18
- id = ShopifyCli::API.gid_to_id(ret['id'])
17
+ ret = data["productCreate"]["product"]
18
+ id = ShopifyCli::API.gid_to_id(ret["id"])
19
19
  @ctx.message(
20
- 'rails.populate.product.added',
21
- ret['title'],
20
+ "rails.populate.product.added",
21
+ ret["title"],
22
22
  ShopifyCli::Project.current.env.shop,
23
23
  admin_url,
24
24
  id
@@ -5,15 +5,15 @@ module Rails
5
5
  prerequisite_task :ensure_env, :ensure_dev_store
6
6
 
7
7
  options do |parser, flags|
8
- parser.on('--host=HOST') do |h|
9
- flags[:host] = h.gsub('"', '')
8
+ parser.on("--host=HOST") do |h|
9
+ flags[:host] = h.gsub('"', "")
10
10
  end
11
11
  end
12
12
 
13
13
  def call(*)
14
14
  project = ShopifyCli::Project.current
15
15
  url = options.flags[:host] || ShopifyCli::Tunnel.start(@ctx)
16
- @ctx.abort(@ctx.message('rails.serve.error.host_must_be_https')) if url.match(/^https/i).nil?
16
+ @ctx.abort(@ctx.message("rails.serve.error.host_must_be_https")) if url.match(/^https/i).nil?
17
17
  project.env.update(@ctx, :host, url)
18
18
  ShopifyCli::Tasks::UpdateDashboardURLS.call(
19
19
  @ctx,
@@ -23,28 +23,28 @@ module Rails
23
23
 
24
24
  if project.env.shop
25
25
  project_url = "#{project.env.host}/login?shop=#{project.env.shop}"
26
- @ctx.puts("\n" + @ctx.message('rails.serve.open_info', project_url) + "\n")
26
+ @ctx.puts("\n" + @ctx.message("rails.serve.open_info", project_url) + "\n")
27
27
  end
28
28
 
29
- CLI::UI::Frame.open(@ctx.message('rails.serve.running_server')) do
29
+ CLI::UI::Frame.open(@ctx.message("rails.serve.running_server")) do
30
30
  env = ShopifyCli::Project.current.env.to_h
31
- env.delete('HOST')
32
- env['PORT'] = ShopifyCli::Tunnel::PORT.to_s
33
- env['GEM_PATH'] = Gem.gem_path(@ctx)
31
+ env.delete("HOST")
32
+ env["PORT"] = ShopifyCli::Tunnel::PORT.to_s
33
+ env["GEM_PATH"] = Gem.gem_path(@ctx)
34
34
  if @ctx.windows?
35
35
  @ctx.system("ruby bin\\rails server", env: env)
36
36
  else
37
- @ctx.system('bin/rails server', env: env)
37
+ @ctx.system("bin/rails server", env: env)
38
38
  end
39
39
  end
40
40
  end
41
41
 
42
42
  def self.help
43
- ShopifyCli::Context.message('rails.serve.help', ShopifyCli::TOOL_NAME)
43
+ ShopifyCli::Context.message("rails.serve.help", ShopifyCli::TOOL_NAME)
44
44
  end
45
45
 
46
46
  def self.extended_help
47
- ShopifyCli::Context.message('rails.serve.extended_help', ShopifyCli::TOOL_NAME)
47
+ ShopifyCli::Context.message("rails.serve.extended_help", ShopifyCli::TOOL_NAME)
48
48
  end
49
49
  end
50
50
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'shopify_cli'
3
+ require "shopify_cli"
4
4
 
5
5
  module Rails
6
6
  module Commands
@@ -10,17 +10,17 @@ module Rails
10
10
  def call(args, _name)
11
11
  subcommand = args.shift
12
12
  case subcommand
13
- when 'auth'
13
+ when "auth"
14
14
  token = args.shift
15
15
  if token.nil?
16
- @ctx.puts(@ctx.message('rails.tunnel.error.token_argument_missing'))
16
+ @ctx.puts(@ctx.message("rails.tunnel.error.token_argument_missing"))
17
17
  @ctx.puts("#{self.class.help}\n#{self.class.extended_help}")
18
18
  else
19
19
  ShopifyCli::Tunnel.auth(@ctx, token)
20
20
  end
21
- when 'start'
21
+ when "start"
22
22
  ShopifyCli::Tunnel.start(@ctx)
23
- when 'stop'
23
+ when "stop"
24
24
  ShopifyCli::Tunnel.stop(@ctx)
25
25
  else
26
26
  @ctx.puts(self.class.help)
@@ -28,11 +28,11 @@ module Rails
28
28
  end
29
29
 
30
30
  def self.help
31
- ShopifyCli::Context.message('rails.tunnel.help', ShopifyCli::TOOL_NAME)
31
+ ShopifyCli::Context.message("rails.tunnel.help", ShopifyCli::TOOL_NAME)
32
32
  end
33
33
 
34
34
  def self.extended_help
35
- ShopifyCli::Context.message('rails.tunnel.extended_help', ShopifyCli::TOOL_NAME)
35
+ ShopifyCli::Context.message("rails.tunnel.extended_help", ShopifyCli::TOOL_NAME)
36
36
  end
37
37
  end
38
38
  end
@@ -1,25 +1,25 @@
1
- require 'uri'
1
+ require "uri"
2
2
 
3
3
  module Rails
4
4
  module Forms
5
5
  class Create < ShopifyCli::Form
6
6
  attr_accessor :name
7
7
  flag_arguments :title, :organization_id, :shop_domain, :type, :db
8
- VALID_DB_TYPES = ['sqlite3',
9
- 'mysql',
10
- 'postgresql',
11
- 'sqlite3',
12
- 'oracle',
13
- 'frontbase',
14
- 'ibm_db',
15
- 'sqlserver',
16
- 'jdbcmysql',
17
- 'jdbcsqlite3',
18
- 'jdbcpostgresql',
19
- 'jdbc']
8
+ VALID_DB_TYPES = ["sqlite3",
9
+ "mysql",
10
+ "postgresql",
11
+ "sqlite3",
12
+ "oracle",
13
+ "frontbase",
14
+ "ibm_db",
15
+ "sqlserver",
16
+ "jdbcmysql",
17
+ "jdbcsqlite3",
18
+ "jdbcpostgresql",
19
+ "jdbc"]
20
20
 
21
21
  def ask
22
- self.title ||= CLI::UI::Prompt.ask(ctx.message('rails.forms.create.app_name'))
22
+ self.title ||= CLI::UI::Prompt.ask(ctx.message("rails.forms.create.app_name"))
23
23
  self.type = ask_type
24
24
  self.name = self.title.downcase.split(" ").join("_")
25
25
  res = ShopifyCli::Tasks::SelectOrgAndShop.call(ctx, organization_id: organization_id, shop_domain: shop_domain)
@@ -32,24 +32,24 @@ module Rails
32
32
 
33
33
  def ask_type
34
34
  if type.nil?
35
- return CLI::UI::Prompt.ask(ctx.message('rails.forms.create.app_type.select')) do |handler|
36
- handler.option(ctx.message('rails.forms.create.app_type.select_public')) { 'public' }
37
- handler.option(ctx.message('rails.forms.create.app_type.select_custom')) { 'custom' }
35
+ return CLI::UI::Prompt.ask(ctx.message("rails.forms.create.app_type.select")) do |handler|
36
+ handler.option(ctx.message("rails.forms.create.app_type.select_public")) { "public" }
37
+ handler.option(ctx.message("rails.forms.create.app_type.select_custom")) { "custom" }
38
38
  end
39
39
  end
40
40
 
41
41
  unless ShopifyCli::Tasks::CreateApiClient::VALID_APP_TYPES.include?(type)
42
- ctx.abort(ctx.message('rails.forms.create.error.invalid_app_type', type))
42
+ ctx.abort(ctx.message("rails.forms.create.error.invalid_app_type", type))
43
43
  end
44
- ctx.puts(ctx.message('rails.forms.create.app_type.selected', type))
44
+ ctx.puts(ctx.message("rails.forms.create.app_type.selected", type))
45
45
  type
46
46
  end
47
47
 
48
48
  def ask_db
49
49
  if db.nil?
50
- return 'sqlite3' unless CLI::UI::Prompt.confirm(ctx.message('rails.forms.create.db.want_select'),
50
+ return "sqlite3" unless CLI::UI::Prompt.confirm(ctx.message("rails.forms.create.db.want_select"),
51
51
  default: false)
52
- @db = CLI::UI::Prompt.ask(ctx.message('rails.forms.create.db.select')) do |handler|
52
+ @db = CLI::UI::Prompt.ask(ctx.message("rails.forms.create.db.select")) do |handler|
53
53
  VALID_DB_TYPES.each do |db_type|
54
54
  handler.option(ctx.message("rails.forms.create.db.select_#{db_type}")) { db_type }
55
55
  end
@@ -57,9 +57,9 @@ module Rails
57
57
  end
58
58
 
59
59
  unless VALID_DB_TYPES.include?(db)
60
- ctx.abort(ctx.message('rails.forms.create.error.invalid_db_type', db))
60
+ ctx.abort(ctx.message("rails.forms.create.error.invalid_db_type", db))
61
61
  end
62
- ctx.puts(ctx.message('rails.forms.create.db.selected', db))
62
+ ctx.puts(ctx.message("rails.forms.create.db.selected", db))
63
63
  db
64
64
  end
65
65
  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
  class Gem
@@ -14,52 +14,52 @@ module Rails
14
14
  name = args.shift
15
15
  version = args.shift
16
16
  gem = new(ctx: ctx, name: name, version: version)
17
- ctx.debug(ctx.message('rails.gem.installed_debug', name, gem.installed?))
17
+ ctx.debug(ctx.message("rails.gem.installed_debug", name, gem.installed?))
18
18
  gem.installed? ? true : gem.install!
19
19
  end
20
20
 
21
21
  def binary_path_for(ctx, binary)
22
- path_to_binary = File.join(gem_home(ctx), 'bin', binary)
22
+ path_to_binary = File.join(gem_home(ctx), "bin", binary)
23
23
  File.exist?(path_to_binary) ? path_to_binary : binary
24
24
  end
25
25
 
26
26
  def gem_home(ctx)
27
- ctx.getenv('GEM_HOME') || apply_gem_home(ctx)
27
+ ctx.getenv("GEM_HOME") || apply_gem_home(ctx)
28
28
  end
29
29
 
30
30
  def gem_path(ctx)
31
- ctx.getenv('GEM_PATH') || apply_gem_path(ctx)
31
+ ctx.getenv("GEM_PATH") || apply_gem_path(ctx)
32
32
  end
33
33
 
34
34
  private
35
35
 
36
36
  def apply_gem_home(ctx)
37
- path = ''
37
+ path = ""
38
38
  # extract GEM_HOME from `gem environment home` command
39
- out, stat = ctx.capture2e('gem', 'environment', 'home')
40
- path = out&.empty? ? '' : out.strip if stat.success?
39
+ out, stat = ctx.capture2e("gem", "environment", "home")
40
+ path = out&.empty? ? "" : out.strip if stat.success?
41
41
  # fallback if return from `gem environment home` is empty (somewhat unlikely)
42
42
  path = fallback_gem_home_path(ctx) if path.empty?
43
43
  # fallback if path isn't writable (if using a system installed ruby)
44
44
  path = fallback_gem_home_path(ctx) unless File.writable?(path)
45
45
  ctx.mkdir_p(path) unless Dir.exist?(path)
46
- ctx.debug(ctx.message('rails.gem.setting_gem_home', path))
47
- ctx.setenv('GEM_HOME', path)
46
+ ctx.debug(ctx.message("rails.gem.setting_gem_home", path))
47
+ ctx.setenv("GEM_HOME", path)
48
48
  end
49
49
 
50
50
  def apply_gem_path(ctx)
51
- path = ''
52
- out, stat = ctx.capture2e('gem', 'environment', 'path')
53
- path = out&.empty? ? '' : out.strip if stat.success?
51
+ path = ""
52
+ out, stat = ctx.capture2e("gem", "environment", "path")
53
+ path = out&.empty? ? "" : out.strip if stat.success?
54
54
  # usually GEM_PATH already contains GEM_HOME
55
55
  # if gem_home() falls back to our fallback path, we need to add it
56
56
  path = gem_home(ctx) + File::PATH_SEPARATOR + path unless path.include?(gem_home(ctx))
57
- ctx.debug(ctx.message('rails.gem.setting_gem_path', path))
58
- ctx.setenv('GEM_PATH', path)
57
+ ctx.debug(ctx.message("rails.gem.setting_gem_path", path))
58
+ ctx.setenv("GEM_PATH", path)
59
59
  end
60
60
 
61
61
  def fallback_gem_home_path(ctx)
62
- File.join(ctx.getenv('HOME'), '.gem', 'ruby', RUBY_VERSION)
62
+ File.join(ctx.getenv("HOME"), ".gem", "ruby", RUBY_VERSION)
63
63
  end
64
64
  end
65
65
 
@@ -67,7 +67,7 @@ module Rails
67
67
  found = false
68
68
  paths = self.class.gem_path(ctx).split(File::PATH_SEPARATOR)
69
69
  paths.each do |path|
70
- ctx.debug(ctx.message('rails.gem.checking_installation_path', "#{path}/gems/", name))
70
+ ctx.debug(ctx.message("rails.gem.checking_installation_path", "#{path}/gems/", name))
71
71
  found = !!Dir.glob("#{path}/gems/#{name}-*").detect do |f|
72
72
  gem_satisfies_version?(f)
73
73
  end
@@ -78,18 +78,18 @@ module Rails
78
78
 
79
79
  def install!
80
80
  spin = CLI::UI::SpinGroup.new
81
- spin.add(ctx.message('rails.gem.installing', name)) do |spinner|
81
+ spin.add(ctx.message("rails.gem.installing", name)) do |spinner|
82
82
  args = %w(gem install)
83
83
  args.push(name)
84
84
  unless version.nil?
85
- if ctx.windows? && version.include?('~')
86
- args.push('-v', "\"#{version}\"")
85
+ if ctx.windows? && version.include?("~")
86
+ args.push("-v", "\"#{version}\"")
87
87
  else
88
- args.push('-v', version)
88
+ args.push("-v", version)
89
89
  end
90
90
  end
91
91
  ctx.system(*args)
92
- spinner.update_title(ctx.message('rails.gem.installed', name))
92
+ spinner.update_title(ctx.message("rails.gem.installed", name))
93
93
  end
94
94
  spin.wait
95
95
  end
@@ -98,7 +98,7 @@ module Rails
98
98
  if version
99
99
  # there was a specific version given during new(), so
100
100
  # check version of gem found to determine match
101
- require 'semantic/semantic'
101
+ require "semantic/semantic"
102
102
  found_version, _ = path.match(%r{/#{Regexp.quote(name)}-(\d\.\d\.\d)})&.captures
103
103
  found_version.nil? ? false : Semantic::Version.new(found_version).satisfies?(version)
104
104
  else
@@ -30,11 +30,11 @@ module Rails
30
30
  Usage: {{command:%s create rails}}
31
31
  Options:
32
32
  {{command:--name=NAME}} App name. Any string.
33
- {{command:--app_url=APPURL}} App URL. Must be a valid URL.
34
- {{command:--organization_id=ID}} Partner organization ID. Must be an existing organization.
35
- {{command:--shop_domain=MYSHOPIFYDOMAIN }} Development store URL. Must be an existing development store.
33
+ {{command:--app-url=APPURL}} App URL. Must be a valid URL.
34
+ {{command:--organization-id=ID}} Partner organization ID. Must be an existing organization.
35
+ {{command:--shop-domain=MYSHOPIFYDOMAIN }} Development store URL. Must be an existing development store.
36
36
  {{command:--db=DB}} Database type. Must be one of: mysql, postgresql, sqlite3, oracle, frontbase, ibm_db, sqlserver, jdbcmysql, jdbcsqlite3, jdbcpostgresql, jdbc.
37
- {{command:--rails_opts=RAILSOPTS}} Additional options. Must be string containing one or more valid Rails options, separated by spaces.
37
+ {{command:--rails-opts=RAILSOPTS}} Additional options. Must be string containing one or more valid Rails options, separated by spaces.
38
38
  HELP
39
39
 
40
40
  error: {
@@ -8,8 +8,8 @@ module Rails
8
8
 
9
9
  class << self
10
10
  def version(ctx)
11
- require 'semantic/semantic'
12
- out, _ = ctx.capture2('ruby', '-v')
11
+ require "semantic/semantic"
12
+ out, _ = ctx.capture2("ruby", "-v")
13
13
  Semantic::Version.new(VERSION_STRING.match(out)[1])
14
14
  end
15
15
  end
@@ -3,77 +3,77 @@
3
3
  module Script
4
4
  class Project < ShopifyCli::ProjectType
5
5
  hidden_feature(feature_set: :script_project)
6
- title('Script')
7
- creator('Script::Commands::Create')
6
+ title("Script")
7
+ creator("Script::Commands::Create")
8
8
 
9
- register_command('Script::Commands::Push', 'push')
10
- register_command('Script::Commands::Disable', 'disable')
11
- register_command('Script::Commands::Enable', 'enable')
9
+ register_command("Script::Commands::Push", "push")
10
+ register_command("Script::Commands::Disable", "disable")
11
+ register_command("Script::Commands::Enable", "enable")
12
12
 
13
- require Project.project_filepath('messages/messages')
13
+ require Project.project_filepath("messages/messages")
14
14
  register_messages(Script::Messages::MESSAGES)
15
15
  end
16
16
 
17
17
  # define/autoload project specific Commands
18
18
  module Commands
19
- autoload :Create, Project.project_filepath('commands/create')
20
- autoload :Push, Project.project_filepath('commands/push')
21
- autoload :Disable, Project.project_filepath('commands/disable')
22
- autoload :Enable, Project.project_filepath('commands/enable')
19
+ autoload :Create, Project.project_filepath("commands/create")
20
+ autoload :Push, Project.project_filepath("commands/push")
21
+ autoload :Disable, Project.project_filepath("commands/disable")
22
+ autoload :Enable, Project.project_filepath("commands/enable")
23
23
  end
24
24
 
25
25
  # define/autoload project specific Forms
26
26
  module Forms
27
- autoload :Create, Project.project_filepath('forms/create')
28
- autoload :ScriptForm, Project.project_filepath('forms/script_form')
27
+ autoload :Create, Project.project_filepath("forms/create")
28
+ autoload :ScriptForm, Project.project_filepath("forms/script_form")
29
29
  end
30
30
 
31
31
  module Layers
32
32
  module Application
33
- autoload :BuildScript, Project.project_filepath('layers/application/build_script')
34
- autoload :CreateScript, Project.project_filepath('layers/application/create_script')
35
- autoload :PushScript, Project.project_filepath('layers/application/push_script')
36
- autoload :DisableScript, Project.project_filepath('layers/application/disable_script')
37
- autoload :EnableScript, Project.project_filepath('layers/application/enable_script')
38
- autoload :ExtensionPoints, Project.project_filepath('layers/application/extension_points')
39
- autoload :ProjectDependencies, Project.project_filepath('layers/application/project_dependencies')
33
+ autoload :BuildScript, Project.project_filepath("layers/application/build_script")
34
+ autoload :CreateScript, Project.project_filepath("layers/application/create_script")
35
+ autoload :PushScript, Project.project_filepath("layers/application/push_script")
36
+ autoload :DisableScript, Project.project_filepath("layers/application/disable_script")
37
+ autoload :EnableScript, Project.project_filepath("layers/application/enable_script")
38
+ autoload :ExtensionPoints, Project.project_filepath("layers/application/extension_points")
39
+ autoload :ProjectDependencies, Project.project_filepath("layers/application/project_dependencies")
40
40
  end
41
41
 
42
42
  module Domain
43
- autoload :Errors, Project.project_filepath('layers/domain/errors')
44
- autoload :PushPackage, Project.project_filepath('layers/domain/push_package')
45
- autoload :Metadata, Project.project_filepath('layers/domain/metadata')
46
- autoload :ExtensionPoint, Project.project_filepath('layers/domain/extension_point')
43
+ autoload :Errors, Project.project_filepath("layers/domain/errors")
44
+ autoload :PushPackage, Project.project_filepath("layers/domain/push_package")
45
+ autoload :Metadata, Project.project_filepath("layers/domain/metadata")
46
+ autoload :ExtensionPoint, Project.project_filepath("layers/domain/extension_point")
47
47
  end
48
48
 
49
49
  module Infrastructure
50
- autoload :Errors, Project.project_filepath('layers/infrastructure/errors')
50
+ autoload :Errors, Project.project_filepath("layers/infrastructure/errors")
51
51
  autoload :AssemblyScriptDependencyManager,
52
- Project.project_filepath('layers/infrastructure/assemblyscript_dependency_manager')
52
+ Project.project_filepath("layers/infrastructure/assemblyscript_dependency_manager")
53
53
  autoload :AssemblyScriptProjectCreator,
54
- Project.project_filepath('layers/infrastructure/assemblyscript_project_creator')
55
- autoload :AssemblyScriptTaskRunner, Project.project_filepath('layers/infrastructure/assemblyscript_task_runner')
56
- autoload :AssemblyScriptTsConfig, Project.project_filepath('layers/infrastructure/assemblyscript_tsconfig')
54
+ Project.project_filepath("layers/infrastructure/assemblyscript_project_creator")
55
+ autoload :AssemblyScriptTaskRunner, Project.project_filepath("layers/infrastructure/assemblyscript_task_runner")
56
+ autoload :AssemblyScriptTsConfig, Project.project_filepath("layers/infrastructure/assemblyscript_tsconfig")
57
57
  autoload :RustProjectCreator,
58
- Project.project_filepath('layers/infrastructure/rust_project_creator.rb')
59
- autoload :RustTaskRunner, Project.project_filepath('layers/infrastructure/rust_task_runner')
58
+ Project.project_filepath("layers/infrastructure/rust_project_creator.rb")
59
+ autoload :RustTaskRunner, Project.project_filepath("layers/infrastructure/rust_task_runner")
60
60
 
61
- autoload :PushPackageRepository, Project.project_filepath('layers/infrastructure/push_package_repository')
62
- autoload :ExtensionPointRepository, Project.project_filepath('layers/infrastructure/extension_point_repository')
63
- autoload :ProjectCreator, Project.project_filepath('layers/infrastructure/project_creator')
64
- autoload :ScriptService, Project.project_filepath('layers/infrastructure/script_service')
65
- autoload :TaskRunner, Project.project_filepath('layers/infrastructure/task_runner')
61
+ autoload :PushPackageRepository, Project.project_filepath("layers/infrastructure/push_package_repository")
62
+ autoload :ExtensionPointRepository, Project.project_filepath("layers/infrastructure/extension_point_repository")
63
+ autoload :ProjectCreator, Project.project_filepath("layers/infrastructure/project_creator")
64
+ autoload :ScriptService, Project.project_filepath("layers/infrastructure/script_service")
65
+ autoload :TaskRunner, Project.project_filepath("layers/infrastructure/task_runner")
66
66
  end
67
67
  end
68
68
 
69
69
  module UI
70
- autoload :ErrorHandler, Project.project_filepath('ui/error_handler')
71
- autoload :PrintingSpinner, Project.project_filepath('ui/printing_spinner')
72
- autoload :StrictSpinner, Project.project_filepath('ui/strict_spinner')
70
+ autoload :ErrorHandler, Project.project_filepath("ui/error_handler")
71
+ autoload :PrintingSpinner, Project.project_filepath("ui/printing_spinner")
72
+ autoload :StrictSpinner, Project.project_filepath("ui/strict_spinner")
73
73
  end
74
74
 
75
- autoload :ScriptProject, Project.project_filepath('script_project')
76
- autoload :Errors, Project.project_filepath('errors')
75
+ autoload :ScriptProject, Project.project_filepath("script_project")
76
+ autoload :Errors, Project.project_filepath("errors")
77
77
 
78
78
  class ScriptProjectError < StandardError; end
79
79
  end