class Thor::Options

def check_at_least_one!

def check_at_least_one!
  opts = @assigns.keys
  # When at least one is required of the options A and B,
  # if the both options were not given, none? would be true.
  found = @at_least_ones.find{ |one_reqs| one_reqs.none?{ |o| opts.include? o} }
  if found
    names = names_to_switch_names(found).map{|n| "'#{n}'"}
    class_name = self.class.name.split("::").last.downcase
    fail AtLeastOneRequiredArgumentError, "Not found at least one of required #{class_name} #{names.join(", ")}"
  end
end