Skip to content

Commit fe89ac6

Browse files
committed
refactor: utilsをモジュールとして分解
1 parent 18b50a3 commit fe89ac6

File tree

2 files changed

+29
-18
lines changed

2 files changed

+29
-18
lines changed

src/no-doubled-joshi.js

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,10 @@ import {RuleHelper} from "textlint-rule-helper";
44
import {getTokenizer} from "kuromojin";
55
import splitSentences, {Syntax as SentenceSyntax} from "sentence-splitter";
66
import StringSource from "textlint-util-to-string";
7-
// 助詞どうか
8-
const is助詞Token = (token) => {
9-
return token.pos === "助詞";
10-
};
11-
const is読点Token = (token) => {
12-
return token.surface_form === "、" && token.pos === "名詞";
13-
};
14-
// 助詞tokenから品詞細分類1までを元にしたkeyを作る
15-
const createKeyFromKey = (token) => {
16-
// e.g.) は:助詞.係助詞
17-
return `${token.surface_form}:${token.pos}.${token.pos_detail_1}`
18-
};
19-
// keyからsurfaceを取り出す
20-
const restoreToSurfaceFromKey = (key) => {
21-
return key.split(":")[0];
22-
};
7+
import {
8+
is助詞Token, is読点Token,
9+
createKeyFromKey, restoreToSurfaceFromKey
10+
} from "./token-utils";
2311
/**
2412
* Create token map object
2513
* {
@@ -128,7 +116,7 @@ export default function (context, options = {}) {
128116
}
129117
// if found differenceIndex less than
130118
// tokes are sorted ascending order
131-
tokens.reduce((prev, current) => {
119+
var reduder = (prev, current) => {
132120
const startPosition = countableTokens.indexOf(prev);
133121
const otherPosition = countableTokens.indexOf(current);
134122
// 助詞token同士の距離が設定値以下ならエラーを報告する
@@ -148,7 +136,8 @@ export default function (context, options = {}) {
148136
report(node, new RuleError(`一文に二回以上利用されている助詞 "${joshiName}" がみつかりました。`, padding));
149137
}
150138
return current;
151-
});
139+
};
140+
tokens.reduce(reduder);
152141
});
153142
};
154143
sentences.forEach(checkSentence);

src/token-utils.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// LICENSE : MIT
2+
"use strict";
3+
// 助詞どうか
4+
export const is助詞Token = (token) => {
5+
return token.pos === "助詞";
6+
};
7+
8+
export const is読点Token = (token) => {
9+
return token.surface_form === "、" && token.pos === "名詞";
10+
};
11+
12+
// 助詞tokenから品詞細分類1までを元にしたkeyを作る
13+
// http://www.unixuser.org/~euske/doc/postag/index.html#chasen
14+
// http://chasen.naist.jp/snapshot/ipadic/ipadic/doc/ipadic-ja.pdf
15+
export const createKeyFromKey = (token) => {
16+
// e.g.) "は:助詞.係助詞"
17+
return `${token.surface_form}:${token.pos}.${token.pos_detail_1}`
18+
};
19+
// keyからsurfaceを取り出す
20+
export const restoreToSurfaceFromKey = (key) => {
21+
return key.split(":")[0];
22+
};

0 commit comments

Comments
 (0)