Sha256: 432e6a65a0de9bff1c60606f415b9419f89a66e9c563067f441021bbeb28760d

Contents?: true

Size: 1.18 KB

Versions: 21

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Script
  module Forms
    class Create < ShopifyCLI::Form
      flag_arguments :extension_point, :name, :language

      def ask
        self.name = valid_name
        self.extension_point ||= ask_extension_point
        self.language = ask_language
      end

      private

      def ask_extension_point
        CLI::UI::Prompt.ask(
          @ctx.message("script.forms.create.select_extension_point"),
          options: Layers::Application::ExtensionPoints.available_types
        )
      end

      def ask_name
        CLI::UI::Prompt.ask(@ctx.message("script.forms.create.script_name"))
      end

      def valid_name
        n = (name || ask_name).downcase.gsub(" ", "_")
        return n if n.match?(/^[0-9A-Za-z_-]*$/)
        raise Errors::InvalidScriptNameError
      end

      def ask_language
        return language.downcase if language

        all_languages = Layers::Application::ExtensionPoints.languages(type: extension_point)
        return all_languages.first if all_languages.count == 1

        CLI::UI::Prompt.ask(
          ctx.message("script.forms.create.select_language"),
          options: all_languages
        )
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
shopify-cli-2.11.2 lib/project_types/script/forms/create.rb
shopify-cli-2.11.1 lib/project_types/script/forms/create.rb
shopify-cli-2.11.0 lib/project_types/script/forms/create.rb
shopify-cli-2.10.2 lib/project_types/script/forms/create.rb
shopify-cli-2.10.1 lib/project_types/script/forms/create.rb
shopify-cli-2.10.0 lib/project_types/script/forms/create.rb
shopify-cli-2.9.0 lib/project_types/script/forms/create.rb
shopify-cli-2.8.0 lib/project_types/script/forms/create.rb
shopify-cli-2.7.4 lib/project_types/script/forms/create.rb
shopify-cli-2.7.3 lib/project_types/script/forms/create.rb
shopify-cli-2.7.2 lib/project_types/script/forms/create.rb
shopify-cli-2.7.1 lib/project_types/script/forms/create.rb
shopify-cli-2.7.0 lib/project_types/script/forms/create.rb
shopify-cli-2.6.6 lib/project_types/script/forms/create.rb
shopify-cli-2.6.5 lib/project_types/script/forms/create.rb
shopify-cli-2.6.4 lib/project_types/script/forms/create.rb
shopify-cli-2.6.3 lib/project_types/script/forms/create.rb
shopify-cli-2.6.2 lib/project_types/script/forms/create.rb
shopify-cli-2.6.1 lib/project_types/script/forms/create.rb
shopify-cli-2.6.0 lib/project_types/script/forms/create.rb