module Payment::Errors ERROR_CODES = %i[insufficient_funds retry_later].freeze class PaymentErrorCodesMismatchError < StandardError; end def self.included(base) raise PaymentErrorCodesMismatchError.new("'#{ERROR_CODES.difference(base::ERROR_MAP.values).join(", ")}' method(s) are not included in #{base}") if ERROR_CODES.difference(base::ERROR_MAP.values).any? end end