Class: Amakanize::Filters::BracketsNormalizationFilter
- Inherits:
-
BaseFilter
- Object
- BaseFilter
- Amakanize::Filters::BracketsNormalizationFilter
- Defined in:
- lib/amakanize/filters/brackets_normalization_filter.rb
Constant Summary collapse
- PAIRS =
%w| ‾ ‾ - - ― ― 〜 〜 ‹ › « » ( ) [ ] { } { } 〈 〉 《 》 【 】 〔 〕 〘 〙 〚 〛 \[ \] < > < > ~ ~ |.each_slice(2)
Instance Method Summary collapse
Instance Method Details
#call(context:, output:) ⇒ Hash
Note:
Override
Returns e.g. ‘“IS (インフィニット・ストラトス) 1 (オーバーラップ文庫)”`.
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/amakanize/filters/brackets_normalization_filter.rb', line 32 def call(context:, output:) { context: context, output: PAIRS.each_with_object(output) do |(open, close), result| result.gsub!(/#{open}([^\( ]+?)#{close}/, '(\1)') end.gsub(/\s*\((.+?)\)(?:\z|(\s*))/) do " \(#{::Regexp.last_match(1)})#{' ' if Regexp.last_match(2)}" end } end |