CallExpression: function()

in rules/controller-name.js [32:63]


            CallExpression: function(node) {
                var prefix = context.options[0] || '/^[A-Z][a-zA-Z0-9]*Controller$/';
                var convertedPrefix; // convert string from JSON .eslintrc to regex

                convertedPrefix = utils.convertPrefixToRegex(prefix);

                var callee = node.callee;
                if (callee.type === 'MemberExpression' && callee.property.name === 'controller') {
                    /**
                     * Allow the usage of element.controller() and element.controller('directiveName') in unittests
                     */
                    if (node.arguments.length < 2) {
                        return;
                    }

                    var name = node.arguments[0].value;

                    if (name !== undefined && !convertedPrefix.test(name)) {
                        if (typeof prefix === 'string' && !utils.isStringRegexp(prefix)) {
                            context.report(node, 'The {{controller}} controller should be prefixed by {{prefix}}', {
                                controller: name,
                                prefix: prefix
                            });
                        } else {
                            context.report(node, 'The {{controller}} controller should follow this pattern: {{prefix}}', {
                                controller: name,
                                prefix: prefix.toString()
                            });
                        }
                    }
                }
            }