class Sequent::Core::Helpers::MessageHandler::OnArgumentsValidator

Public Class Methods

validate_arguments!(*args) click to toggle source
# File lib/sequent/core/helpers/message_handler.rb, line 76
def validate_arguments!(*args)
  fail ArgumentError, "Must provide at least one argument to 'on'" if args.empty?

  duplicates = args
    .select { |arg| args.count(arg) > 1 }
    .uniq

  if duplicates.any?
    humanized_duplicates = duplicates
      .map { |x| MessageMatchers::ArgumentSerializer.serialize_value(x) }
      .join(', ')

    fail ArgumentError,
         "Arguments to 'on' must be unique, duplicates: #{humanized_duplicates}"
  end
end