@@ -122,7 +122,7 @@ def initialize(text_filters: [], convert_filter: nil, sanitization_config: Sanit
122122
123123 @convert_filter = convert_filter
124124
125- if @convert_filter . nil? && ( !@text_filters . empty? && !@node_filters . empty? )
125+ if @convert_filter . nil? && !@text_filters . empty? && !@node_filters . empty?
126126 raise InvalidFilterError , "Must provide `convert_filter` if `text_filters` and `node_filters` are also provided"
127127 elsif !@convert_filter . nil?
128128 validate_filter ( @convert_filter , HTMLPipeline ::ConvertFilter )
@@ -154,13 +154,13 @@ def call(text, context: {}, result: {})
154154 if @text_filters . any?
155155 payload = default_payload ( {
156156 text_filters : @text_filters . map { |f | f . class . name } ,
157- context : context ,
158- result : result ,
157+ context :,
158+ result :,
159159 } )
160160 instrument ( "call_text_filters.html_pipeline" , payload ) do
161161 result [ :output ] =
162162 @text_filters . inject ( text ) do |doc , filter |
163- perform_filter ( filter , doc , context : ( filter . context || { } ) . merge ( context ) , result : result )
163+ perform_filter ( filter , doc , context : ( filter . context || { } ) . merge ( context ) , result :)
164164 end
165165 end
166166 end
@@ -181,18 +181,18 @@ def call(text, context: {}, result: {})
181181 } ,
182182 }
183183
184- if @node_filters . empty?
184+ if @node_filters . empty? && ! @sanitization_config . nil?
185185 instrument ( "sanitization.html_pipeline" , payload ) do
186186 result [ :output ] = Selma ::Rewriter . new ( sanitizer : @sanitization_config , options : rewriter_options ) . rewrite ( html )
187187 end
188- else
188+ elsif @node_filters . any?
189189 instrument ( "call_node_filters.html_pipeline" , payload ) do
190190 @node_filters . each { |filter | filter . context = ( filter . context || { } ) . merge ( context ) }
191191 result [ :output ] = Selma ::Rewriter . new ( sanitizer : @sanitization_config , handlers : @node_filters , options : rewriter_options ) . rewrite ( html )
192192 payload = default_payload ( {
193193 node_filters : @node_filters . map { |f | f . class . name } ,
194- context : context ,
195- result : result ,
194+ context :,
195+ result :,
196196 } )
197197 end
198198 end
@@ -211,18 +211,18 @@ def call(text, context: {}, result: {})
211211 def perform_filter ( filter , doc , context : { } , result : { } )
212212 payload = default_payload ( {
213213 filter : filter . class . name ,
214- context : context ,
215- result : result ,
214+ context :,
215+ result :,
216216 } )
217217
218218 instrument ( "call_filter.html_pipeline" , payload ) do
219- filter . call ( doc , context : context , result : result )
219+ filter . call ( doc , context :, result :)
220220 end
221221 end
222222
223223 # Like call but guarantee the value returned is a string of HTML markup.
224224 def to_html ( input , context : { } , result : { } )
225- result = call ( input , context : context , result : result )
225+ result = call ( input , context :, result :)
226226 output = result [ :output ]
227227 if output . respond_to? ( :to_html )
228228 output . to_html
0 commit comments