shopify-cli 1.6.0 → 1.7.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 (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