diff --git a/spec/benchmarks/banzai_benchmark.rb b/spec/benchmarks/banzai_benchmark.rb index 05c41eed88947841dbef1f0f58383e1ff6917fce..86f7ee7e90bfb44d6ed83eac0fc594fdad7cdbdd 100644 --- a/spec/benchmarks/banzai_benchmark.rb +++ b/spec/benchmarks/banzai_benchmark.rb @@ -88,12 +88,18 @@ def build_filter_text(pipeline, initial_text) filter_source = {} input_text = initial_text + result = nil pipeline.filters.each do |filter_klass| - filter_source[filter_klass] = input_text + # store inputs for current filter_klass + filter_source[filter_klass] = { input_text: input_text, input_result: result } - output = filter_klass.call(input_text, context) + filter = filter_klass.new(input_text, context, result) + output = filter.call + + # save these for the next filter_klass input_text = output + result = filter.result end filter_source @@ -111,7 +117,12 @@ def benchmark_pipeline_filters(pipeline_type) pipeline.filters.each do |filter_klass| label = filter_klass.name.demodulize.delete_suffix('Filter').truncate(20) - x.report(label) { filter_klass.call(filter_source[filter_klass], context) } + x.report(label) do + filter = filter_klass.new(filter_source[filter_klass][:input_text], + context, + filter_source[filter_klass][:input_result]) + filter.call + end end x.compare!