Class: VivlioStarter::CLI::Metrics::SentenceCollector
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::Metrics::SentenceCollector
- Defined in:
- lib/vivlio_starter/cli/metrics/sentence_collector.rb
Overview
章本文から位置つきで文を収集する。
Constant Summary collapse
- STRUCTURAL =
文ではない構造行(見出し/表/HTMLコメント/コンテナ/画像/引用)。
/\A\s*(?:#|\||<!--|:::|!\[|>)/- SENTENCE_END =
/[。!?!?]+/
Instance Method Summary collapse
Instance Method Details
#collect(content, chapter_num) ⇒ Array<LocatedSentence>
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/vivlio_starter/cli/metrics/sentence_collector.rb', line 35 def collect(content, chapter_num) @results = [] @buffer = +'' @start_line = nil # コード(フェンス区切り行・内容行)とみなす行番号を Masking で判定する。 # 行番号を保ったまま、可変長フェンス・入れ子・~~~ に一貫して追従する。 code_lines = code_fence_lines(content) content.each_line.with_index(1) do |raw, lineno| next if code_lines.include?(lineno) next if reset_on_boundary(raw) accumulate(raw, lineno, chapter_num) end @results end |