mirror of
https://github.com/meineerde/rackstash.git
synced 2026-02-01 01:37:12 +00:00
Allow to set a registered encoder in a Flow by name
This commit is contained in:
parent
fa1abb5ab5
commit
2c7d897889
@ -188,6 +188,7 @@ module Rackstash
|
||||
def encoder(encoder = nil)
|
||||
return @encoder if encoder.nil?
|
||||
self.encoder = encoder
|
||||
@encoder
|
||||
end
|
||||
|
||||
# Set the encoder for the log {#adapter}. You can use any object which
|
||||
@ -198,8 +199,7 @@ module Rackstash
|
||||
# method
|
||||
# @return [#encode] the new `encoder`
|
||||
def encoder=(encoder)
|
||||
raise TypeError, 'must provide an encoder' unless encoder.respond_to?(:encode)
|
||||
@encoder = encoder
|
||||
@encoder = Rackstash::Encoder.build(encoder)
|
||||
end
|
||||
|
||||
# Get or set a separate {Flow} which is used by this flow to write details
|
||||
|
||||
@ -221,8 +221,15 @@ RSpec.describe Rackstash::Flow do
|
||||
expect(flow.encoder).to equal encoder
|
||||
end
|
||||
|
||||
it 'sets an encoder from a spec' do
|
||||
flow.encoder = :raw
|
||||
expect(flow.encoder).to be_a Rackstash::Encoder::Raw
|
||||
end
|
||||
|
||||
it 'rejects invalid encoders' do
|
||||
expect { flow.encoder = :foo }.to raise_error TypeError
|
||||
# No registered encoder found
|
||||
expect { flow.encoder = :invalid }.to raise_error KeyError
|
||||
|
||||
expect { flow.encoder = 23 }.to raise_error TypeError
|
||||
expect { flow.encoder = true }.to raise_error TypeError
|
||||
expect { flow.encoder = false }.to raise_error TypeError
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user