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