Skip to content

Commit ab55f44

Browse files
committed
Test add. Rule works.
1 parent 1aebb64 commit ab55f44

File tree

4 files changed

+49
-33
lines changed

4 files changed

+49
-33
lines changed

Diff for: package.json

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"package.json"
3535
],
3636
"dependencies": {
37+
"array-flatten": "^2.1.2",
3738
"ramda": "^0.26.1",
3839
"requireindex": "^1.2.0",
3940
"split-camelcase": "^1.0.1"

Diff for: src/rules/no-generic-verbs.js

+23-15
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,39 @@ let utils = require('../utils');
33
module.exports = {
44
meta: {
55
type: 'problem',
6+
docs: {
7+
url: 'https://github.com/atomspace/eslint-plugin-naming-convention/blob/master/docs/rules/no-generic-verbs.md'
8+
},
69
messages: {
7-
errorMessage: `The identifier has generic verb: {{ genericVerb }}.`
10+
errorMessage: `The identifier has generic verb: {{ genericVerbInVariable }}.`
811
}
912
},
10-
create(context) {
13+
create (context) {
1114
return {
12-
Identifier(node) {
13-
const GENERIC_VERBS = ['get', 'set', 'array', 'check', 'validate', 'make', 'process', 'start'];
15+
Identifier (node) {
16+
const GENERIC_VERBS = ['set', 'get', 'array', 'check', 'validate', 'make', 'process', 'start'];
1417
let variableName = node.name;
1518

16-
let splitedVariableName = utils.splitWord(variableName);
19+
let splitedVariableName = utils.splitVariable(variableName);
1720

18-
splitedVariableName.forEach(word => {
19-
if (GENERIC_VERBS.includes(word)){
20-
context.report({
21-
node: node,
22-
messageId: 'errorMessage',
23-
data: {
24-
genericVerb: word
25-
}
26-
});
21+
let genericVerbInVariable;
22+
23+
for (let word of splitedVariableName) {
24+
if (GENERIC_VERBS.includes(word)) {
25+
genericVerbInVariable = word;
26+
break;
2727
}
28-
});
28+
}
2929

30+
if (!genericVerbInVariable) return;
3031

32+
context.report({
33+
node,
34+
messageId: 'errorMessage',
35+
data:{
36+
genericVerbInVariable
37+
}
38+
});
3139
}
3240
};
3341
}

Diff for: src/utils.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
let flat = require('array-flatten');
2+
13
function split (separator, string) {
2-
return string.split(separator);
4+
let result = string.split(separator);
5+
6+
return result;
37
}
48

59
function splitCamelCase (string) {
@@ -8,30 +12,28 @@ function splitCamelCase (string) {
812
return split(CAMEL_CASE_REGEXP, string);
913
}
1014

15+
1116
function splitSnakeCase (string) {
1217
const SNAKE_CASE_SEPARATOR = '_';
1318

1419
return split(SNAKE_CASE_SEPARATOR, string);
1520
}
1621

17-
function splitKebabCase (string) {
18-
const KEBAB_CASE_SEPARATOR = '-';
19-
20-
return split(KEBAB_CASE_SEPARATOR, string);
21-
}
22-
2322
function toLowerCase (string) {
24-
return string.toLowerCase();
23+
if (typeof string === 'string') return string.toLowerCase();
24+
return string;
2525
}
2626

2727
module.exports = {
28-
splitWord: word => {
29-
let splitedWithCamelCase = splitCamelCase(word);
30-
31-
console.log(splitedWithCamelCase);
32-
return splitedWithCamelCase
33-
// .map(splitSnakeCase)
34-
.map(splitKebabCase)
35-
.map(toLowerCase);
28+
splitVariable: word => {
29+
let splitedWithSnakeCase = splitSnakeCase(word);
30+
31+
let splitedWithCamelCase = splitedWithSnakeCase.map(splitCamelCase);
32+
33+
let flatted = flat(splitedWithCamelCase);
34+
35+
let lowerCaseWords = flatted.map(toLowerCase);
36+
37+
return lowerCaseWords;
3638
}
3739
};

Diff for: test/no-generic-verbs.test.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Object.assign(ruleTester.testerConfig, {
1010
ecmaVersion: 2018
1111
}
1212
});
13+
1314
ruleTester.run('no-generic-verb', noGenericVerbs, {
1415
valid: [
1516
{
@@ -43,13 +44,17 @@ ruleTester.run('no-generic-verb', noGenericVerbs, {
4344
errors: [{ messageId: 'errorMessage' }]
4445
},
4546
{
46-
code: `function validataPassword(password){
47+
code: `function validatePassword(password){
4748
return password === 'cucumber'
4849
}`,
4950
errors: [{ messageId: 'errorMessage' }]
5051
},
5152
{
52-
code: `let simpleArray = [4,5,3]`,
53+
code: `let set_variable_balue = 5`,
54+
errors: [{ messageId: 'errorMessage' }]
55+
},
56+
{
57+
code: `let set_object_value = () => 6`,
5358
errors: [{ messageId: 'errorMessage' }]
5459
},
5560
{

0 commit comments

Comments
 (0)