Sha256: 5729ad97460eb2956239ed5dd4cfcf0d63d5e79b7eded90cbb19ffe49b1464e6
Contents?: true
Size: 940 Bytes
Versions: 12
Compression:
Stored size: 940 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 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
12 entries across 12 versions & 1 rubygems