class Amakanize::Filters::BracketsNormalizationFilter
Constants
- PAIRS
Public Instance Methods
call(context:, output:)
click to toggle source
@note Override @param output [String] e.g. `“IS〈インフィニット・ストラトス〉 1 (オーバーラップ文庫)”` @return [Hash] e.g. `“IS (インフィニット・ストラトス) 1 (オーバーラップ文庫)”`
# 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