# File lib/slop.rb, line 563 def command(label, options={}, &block) if @commands.key?(label) raise ArgumentError, "command `#{label}` already exists" end slop = Slop.new @sloptions.merge(options) slop.aliases = Array(options.delete(:aliases) || options.delete(:alias)) @commands[label] = slop slop.aliases.each { |a| @commands[a] = @commands[label] } if block_given? block.arity == 1 ? yield(slop) : slop.instance_eval(&block) end slop end