module Thor::Base::ClassMethods

def remove_argument(*names)


remove_argument :foo, :bar, :baz, :undefine => true
remove_argument :foo

==== Examples

names:: Arguments to be removed
==== Paremeters

accessors as well.
Removes a previous defined argument. If :undefine is given, undefine
def remove_argument(*names)
  options = names.last.is_a?(Hash) ? names.pop : {}
  names.each do |name|
    arguments.delete_if { |a| a.name == name.to_s }
    undef_method name, "#{name}=" if options[:undefine]
  end
end