Module: TWFilter::Checks::Wenyan
- Defined in:
- lib/twfilter/checks/wenyan.rb,
sig/twfilter.rbs
Constant Summary collapse
- NAME =
:wenyan
Class Method Summary collapse
Class Method Details
.call(subject) ⇒ ::Array[Finding]
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/twfilter/checks/wenyan.rb', line 9 def call(subject) policy = subject.policy return [] if subject.han < policy.wenyan_min_han hits = markers.sum { |char| subject.text.count(char) } return [] if hits < policy.wenyan_min_hits density = density(subject) return [] if density <= policy.wenyan_max_density [Finding.new(check: NAME, code: :literary_density, detail: format("%.0f%%", density * 100))] end |
.density(subject) ⇒ ::Float
22 23 24 25 26 |
# File 'lib/twfilter/checks/wenyan.rb', line 22 def density(subject) return 0.0 if subject.han.zero? markers.sum { |char| subject.text.count(char) }.fdiv(subject.han) end |