Sha256: d0f8a6b4ea67983f07bf720d0efb1a25a6ab83b4c89a1b5af25950c02ee04209

Contents?: true

Size: 1.18 KB

Versions: 19

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Extension
  module Forms
    class Create < ShopifyCli::Form
      flag_arguments :name, :type, :api_key

      attr_reader :app

      class ExtensionProjectDetails
        include SmartProperties

        property :app, accepts: Models::App
        property :name, accepts: String
        property :type, accepts: Models::SpecificationHandlers::Default

        def complete?
          !!(app && name && type)
        end
      end

      def ask
        ShopifyCli::Result.wrap(ExtensionProjectDetails.new)
          .then(&Questions::AskApp.new(ctx: ctx, api_key: api_key))
          .then(&Questions::AskType.new(ctx: ctx, type: type))
          .then(&Questions::AskName.new(ctx: ctx, name: name))
          .unwrap { |e| raise e }
          .tap do |project_details|
            ctx.abort(ctx.message("create.incomplete_configuration")) unless project_details.complete?

            self.app = project_details.app
            self.type = project_details.type
            self.name = project_details.name
          end
      end

      def directory_name
        name.strip.gsub(/( )/, "_").downcase
      end

      private

      attr_writer :app
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
shopify-cli-2.3.0 lib/project_types/extension/forms/create.rb
shopify-cli-2.2.2 lib/project_types/extension/forms/create.rb
shopify-cli-2.2.1 lib/project_types/extension/forms/create.rb
shopify-cli-2.2.0 lib/project_types/extension/forms/create.rb
shopify-cli-2.1.0 lib/project_types/extension/forms/create.rb
shopify-cli-2.0.2 lib/project_types/extension/forms/create.rb
shopify-cli-2.0.1 lib/project_types/extension/forms/create.rb
shopify-cli-2.0.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.14.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.13.1 lib/project_types/extension/forms/create.rb
shopify-cli-1.13.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.12.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.11.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.10.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.9.1 lib/project_types/extension/forms/create.rb
shopify-cli-1.9.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.8.0 lib/project_types/extension/forms/create.rb
shopify-cli-1.7.1 lib/project_types/extension/forms/create.rb
shopify-cli-1.7.0 lib/project_types/extension/forms/create.rb