Sha256: 66d136a3a323c0b1679248c0536b272ebb4ef4d890c359a91b02ce93211e554a
Contents?: true
Size: 1.34 KB
Versions: 1
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true module Extension module Forms class Create < ShopifyCli::Form flag_arguments :name, :type, :api_key, :template attr_reader :app class ExtensionProjectDetails include SmartProperties property :app, accepts: Models::App property :name, accepts: String property :type, accepts: Models::SpecificationHandlers::Default property :template, accepts: String 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::AskTemplate.new(ctx: ctx)) .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.template = project_details.template 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shopify-cli-2.4.0 | lib/project_types/extension/forms/create.rb |