From bdeb0534c94ff2973d61c6eb63b272c1c5450f4e Mon Sep 17 00:00:00 2001 From: Holger Just Date: Fri, 12 Jan 2018 23:34:17 +0100 Subject: [PATCH] Allow to set the Flow#raise_on_error setting with the same getter/setter protocol as all the other values --- lib/rackstash/flow.rb | 12 ++++++++++++ spec/rackstash/flow_spec.rb | 15 ++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/rackstash/flow.rb b/lib/rackstash/flow.rb index 3dbc17c..5bf6385 100644 --- a/lib/rackstash/flow.rb +++ b/lib/rackstash/flow.rb @@ -220,6 +220,18 @@ module Rackstash end alias filter_prepend filter_unshift + # Get or set the raise_on_error setting. Only if set to `true`, we will + # re-raise errors occuring during logging. If set to `false` (the default), + # we will only log the exception to the {#error_flow} and swallow it. + # + # @param bool [Bool] the value to set. If omitted, we just return the + # current setting + # @return [Bool] the updated or current `raise_on_error` setting + def raise_on_error(bool = UNDEFINED) + self.raise_on_error = bool unless UNDEFINED.equal? bool + raise_on_error? + end + # @return [Bool] `true` if we re-raise any occured errors after logging them # to the {#error_flow}. This can aid in debugging. By default, i.e., with # {#raise_on_error?} being `false`, we swallow errors after logging them diff --git a/spec/rackstash/flow_spec.rb b/spec/rackstash/flow_spec.rb index 289ced5..a503171 100644 --- a/spec/rackstash/flow_spec.rb +++ b/spec/rackstash/flow_spec.rb @@ -298,19 +298,24 @@ describe Rackstash::Flow do describe '#raise_on_error?' do it 'defaults to false' do expect(flow.raise_on_error?).to eql false + expect(flow.raise_on_error).to eql false end - it 'can set a boolean' do - flow.raise_on_error = 'something' + it 'can set to true or false' do + expect(flow.raise_on_error 'something').to eql true + expect(flow.raise_on_error).to eql true expect(flow.raise_on_error?).to eql true - flow.raise_on_error = nil + expect(flow.raise_on_error nil).to eql false + expect(flow.raise_on_error).to eql false expect(flow.raise_on_error?).to eql false - flow.raise_on_error = true + expect(flow.raise_on_error true).to eql true + expect(flow.raise_on_error).to eql true expect(flow.raise_on_error?).to eql true - flow.raise_on_error = false + expect(flow.raise_on_error false).to eql false + expect(flow.raise_on_error).to eql false expect(flow.raise_on_error?).to eql false end end