Sha256: 18e5735a130fe93dd928fcc2bfc7eb5481abe1e0e6a23d2a036faf33d34207f1

Contents?: true

Size: 993 Bytes

Versions: 45

Compression:

Stored size: 993 Bytes

Contents

require "shopify_cli"

module ShopifyCLI
  class Form
    class << self
      def ask(ctx, args, flags)
        attrs = {}
        (@positional_arguments || []).each { |name| attrs[name] = args.shift }
        return nil if attrs.any? { |_k, v| v.nil? }
        (@flag_arguments || []).each { |arg| attrs[arg] = flags[arg] }
        form = new(ctx, args, attrs)
        begin
          form.ask
          form
        rescue ShopifyCLI::Abort => err
          ctx.puts(err.message)
          nil
        rescue ShopifyCLI::AbortSilent
          nil
        end
      end

      def positional_arguments(*args)
        @positional_arguments = args
        attr_accessor(*args)
      end

      def flag_arguments(*args)
        @flag_arguments = args
        attr_accessor(*args)
      end
    end

    attr_accessor :ctx, :xargs

    def initialize(ctx, xargs, attributes)
      @ctx = ctx
      @xargs = xargs
      attributes.each { |k, v| send("#{k}=", v) unless v.nil? }
    end
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
shopify-cli-2.36.0 lib/shopify_cli/form.rb
shopify-cli-2.35.0 lib/shopify_cli/form.rb
shopify-cli-2.34.0 lib/shopify_cli/form.rb
shopify-cli-2.33.1 lib/shopify_cli/form.rb
shopify-cli-2.33.0 lib/shopify_cli/form.rb
shopify-cli-2.32.1 lib/shopify_cli/form.rb
shopify-cli-2.32.0 lib/shopify_cli/form.rb
shopify-cli-2.31.0 lib/shopify_cli/form.rb
shopify-cli-2.30.0 lib/shopify_cli/form.rb
shopify-cli-2.29.0 lib/shopify_cli/form.rb
shopify-cli-2.28.0 lib/shopify_cli/form.rb
shopify-cli-2.27.0 lib/shopify_cli/form.rb
shopify-cli-2.26.0 lib/shopify_cli/form.rb
shopify-cli-2.25.0 lib/shopify_cli/form.rb
shopify-cli-2.24.0 lib/shopify_cli/form.rb
shopify-cli-2.23.0 lib/shopify_cli/form.rb
shopify-cli-2.22.0 lib/shopify_cli/form.rb
shopify-cli-2.21.0 lib/shopify_cli/form.rb
shopify-cli-2.20.1 lib/shopify_cli/form.rb
shopify-cli-2.20.0 lib/shopify_cli/form.rb