From 30c1609dde455388910145a5cb7a6959b9198d43 Mon Sep 17 00:00:00 2001 From: Jeff Wallace Date: Mon, 9 May 2022 15:06:36 -0700 Subject: [PATCH] Don't sync on #tap Sometimes #tap is used just for code style and the value is never checked, so don't sync the value. --- lib/batch_loader.rb | 2 +- spec/batch_loader_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/batch_loader.rb b/lib/batch_loader.rb index 6b997eb..e784d75 100644 --- a/lib/batch_loader.rb +++ b/lib/batch_loader.rb @@ -8,7 +8,7 @@ require_relative "./batch_loader/graphql" class BatchLoader - IMPLEMENTED_INSTANCE_METHODS = %i[object_id __id__ __send__ singleton_method_added __sync respond_to? batch inspect].freeze + IMPLEMENTED_INSTANCE_METHODS = %i[object_id __id__ __send__ singleton_method_added __sync respond_to? batch inspect tap].freeze REPLACABLE_INSTANCE_METHODS = %i[batch inspect].freeze LEFT_INSTANCE_METHODS = (IMPLEMENTED_INSTANCE_METHODS - REPLACABLE_INSTANCE_METHODS).freeze diff --git a/spec/batch_loader_spec.rb b/spec/batch_loader_spec.rb index 7755c96..d9b170c 100644 --- a/spec/batch_loader_spec.rb +++ b/spec/batch_loader_spec.rb @@ -310,4 +310,12 @@ expect { result.to_s }.to raise_error("Oops") end end + + describe '#tap' do + it 'returns BatchLoader without syncing' do + result = BatchLoader.for(1).batch { |_ids, _loader| raise "Oops" } + + expect { result.tap {} }.not_to raise_error("Oops") + end + end end