mirror of
https://github.com/meineerde/rackstash.git
synced 2026-02-01 01:37:12 +00:00
Add Rackstash::Flow.encoder= as a real setter
This commit is contained in:
parent
469ab5823a
commit
e532be28c3
@ -78,7 +78,7 @@ module Rackstash
|
||||
# context of `self`.
|
||||
def initialize(adapter, encoder: nil, filters: [], error_flow: nil, &block)
|
||||
@adapter = Rackstash::Adapters[adapter]
|
||||
self.encoder(encoder || @adapter.default_encoder)
|
||||
self.encoder = encoder || @adapter.default_encoder
|
||||
@filter_chain = Rackstash::FilterChain.new(filters)
|
||||
|
||||
if error_flow.nil?
|
||||
@ -122,12 +122,24 @@ module Rackstash
|
||||
#
|
||||
# @param encoder [#encode, nil] if given, set the flow's encoder to this
|
||||
# object
|
||||
# @raise [TypeError] if the given encoder does not respond to the `encode`
|
||||
# @raise [TypeError] if the given `encoder` does not respond to the `encode`
|
||||
# method
|
||||
# @return [#encode] the new encoder if given or the currently defined one
|
||||
# @return [#encode] the newly set encoder (if given) or the currently
|
||||
# defined one
|
||||
# @see #encoder=
|
||||
def encoder(encoder = nil)
|
||||
return @encoder if encoder.nil?
|
||||
self.encoder = encoder
|
||||
end
|
||||
|
||||
# Set the encoder for the log {#adapter}. You can use any object which
|
||||
# responds to the `encode` method.
|
||||
#
|
||||
# @param encoder [#encode] the encoder to use for the log {#adapter}.
|
||||
# @raise [TypeError] if the given `encoder` does not respond to the `encode`
|
||||
# method
|
||||
# @return [#encode] the new `encoder`
|
||||
def encoder=(encoder)
|
||||
raise TypeError, 'must provide an encoder' unless encoder.respond_to?(:encode)
|
||||
@encoder = encoder
|
||||
end
|
||||
|
||||
@ -123,13 +123,22 @@ describe Rackstash::Flow do
|
||||
# The encoder is persisted and is returned afterwards
|
||||
expect(flow.encoder).to equal encoder
|
||||
end
|
||||
end
|
||||
|
||||
describe '#encoder=' do
|
||||
it 'sets a new encoder' do
|
||||
encoder = Rackstash::Encoders::JSON.new
|
||||
flow.encoder = encoder
|
||||
|
||||
expect(flow.encoder).to equal encoder
|
||||
end
|
||||
|
||||
it 'rejects invalid encoders' do
|
||||
expect { flow.encoder :foo }.to raise_error TypeError
|
||||
expect { flow.encoder 23 }.to raise_error TypeError
|
||||
expect { flow.encoder true }.to raise_error TypeError
|
||||
expect { flow.encoder false }.to raise_error TypeError
|
||||
expect { flow.encoder -> {} }.to raise_error TypeError
|
||||
expect { flow.encoder = :foo }.to raise_error TypeError
|
||||
expect { flow.encoder = 23 }.to raise_error TypeError
|
||||
expect { flow.encoder = true }.to raise_error TypeError
|
||||
expect { flow.encoder = false }.to raise_error TypeError
|
||||
expect { flow.encoder = -> {} }.to raise_error TypeError
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user