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