Class: Extension::Command::Create

Inherits:
ShopifyCLI::Command::SubCommand show all
Defined in:
lib/project_types/extension/commands/create.rb

Instance Attribute Summary

Attributes inherited from ShopifyCLI::Command

#ctx, #options

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ShopifyCLI::Command::SubCommand

call

Methods inherited from ShopifyCLI::Command

call, call_help, check_node_version, check_ruby_version, check_version, #initialize, options, prerequisite_task, recommend_default_node_range, recommend_default_ruby_range, recommend_node, recommend_ruby, run_prerequisites, subcommand, subcommand_registry

Methods included from ShopifyCLI::Feature::Set

#hidden?, #hidden_feature

Constructor Details

This class inherits a constructor from ShopifyCLI::Command

Class Method Details

.helpObject



31
32
33
# File 'lib/project_types/extension/commands/create.rb', line 31

def self.help
  @ctx.message("create.help", ShopifyCLI::TOOL_NAME)
end

Instance Method Details

#call(args, _) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/project_types/extension/commands/create.rb', line 18

def call(args, _)
  with_create_form(args) do |form, message_for_extension|
    if Dir.exist?(form.directory_name)
      @ctx.abort(message_for_extension["create.errors.directory_exists", form.directory_name])
    end

    ShopifyCLI::Result.success(supports_development_server?(form.type.identifier))
      .then { |supported| create_extension(supported, form) }
      .then { notify_success(form, message_for_extension) }
      .unwrap { |err| @ctx.puts(message_for_extension["create.try_again"]) unless err.nil? }
  end
end