class Thor::Options
def check_exclusive!
def check_exclusive! opts = @assigns.keys # When option A and B are exclusive, if A and B are given at the same time, # the diffrence of argument array size will decrease. found = @exclusives.find{ |ex| (ex - opts).size < ex.size - 1 } if found names = names_to_switch_names(found & opts).map{|n| "'#{n}'"} class_name = self.class.name.split("::").last.downcase fail ExclusiveArgumentError, "Found exclusive #{class_name} #{names.join(", ")}" end end