diff --git a/lib/rackstash/flows.rb b/lib/rackstash/flows.rb index d4d8e67..a176a8b 100644 --- a/lib/rackstash/flows.rb +++ b/lib/rackstash/flows.rb @@ -19,7 +19,7 @@ module Rackstash def initialize(*flows) @flows = Concurrent::Array.new - flows.flatten.each do |flow| + flows.each do |flow| add(flow) end end diff --git a/lib/rackstash/logger.rb b/lib/rackstash/logger.rb index b59fdea..ac9636f 100644 --- a/lib/rackstash/logger.rb +++ b/lib/rackstash/logger.rb @@ -57,10 +57,10 @@ module Rackstash # By default we use {PROGNAME}. # @param formatter [#call] the log formatter for each individual buffered # line. See {#formatter} for details. - def initialize(flows, level: DEBUG, progname: PROGNAME, formatter: Formatter.new) + def initialize(*flows, level: DEBUG, progname: PROGNAME, formatter: Formatter.new) @buffer_stack = Concurrent::ThreadLocalVar.new - @sink = Rackstash::Sink.new(flows) + @sink = Rackstash::Sink.new(*flows) self.level = level self.progname = progname self.formatter = formatter diff --git a/lib/rackstash/sink.rb b/lib/rackstash/sink.rb index bd4cfd1..02d8a36 100644 --- a/lib/rackstash/sink.rb +++ b/lib/rackstash/sink.rb @@ -15,8 +15,8 @@ module Rackstash # @param flows [Array, Flow, Adapters::Adapter, Object] # an array of {Flow}s or a single {Flow}, respectivly object which can be # used as a {Flow}'s adapter. See {Flow#initialize}. - def initialize(flows) - @flows = Rackstash::Flows.new(flows) + def initialize(*flows) + @flows = Rackstash::Flows.new(*flows) @default_fields = {} @default_tags = [] diff --git a/spec/rackstash/flows_spec.rb b/spec/rackstash/flows_spec.rb index e0c0ab1..17507fb 100644 --- a/spec/rackstash/flows_spec.rb +++ b/spec/rackstash/flows_spec.rb @@ -27,9 +27,6 @@ describe Rackstash::Flows do it 'accepts a list of flows' do raw_flows = Array.new(3) { a_flow } - list_with_array = described_class.new(raw_flows) - expect(list_with_array.size).to eql 3 - list_with_splat = described_class.new(*raw_flows) expect(list_with_splat.size).to eql 3 end diff --git a/spec/rackstash/sink_spec.rb b/spec/rackstash/sink_spec.rb index 8d7a657..109c592 100644 --- a/spec/rackstash/sink_spec.rb +++ b/spec/rackstash/sink_spec.rb @@ -19,27 +19,27 @@ describe Rackstash::Sink do flow end - let(:flow) { a_flow } - let(:sink) { described_class.new(flow) } + let(:flows) { [a_flow] } + let(:sink) { described_class.new(*flows) } describe 'initialize' do # We deliberately use the real Rackstash::Flows class here to server as an # integration test it 'wraps a single flow in a flows list' do - expect(Rackstash::Flows).to receive(:new).with(flow) + expect(Rackstash::Flows).to receive(:new).with(*flows) .and_call_original - sink = described_class.new(flow) + sink = described_class.new(*flows) expect(sink.flows).to be_a Rackstash::Flows - expect(sink.flows.to_a).to eql [flow] + expect(sink.flows.to_a).to eql flows end it 'wraps multiple flows in a flows list' do flows = [a_flow, a_flow] - expect(Rackstash::Flows).to receive(:new).with(flows) + expect(Rackstash::Flows).to receive(:new).with(*flows) .and_call_original - sink = described_class.new(flows) + sink = described_class.new(*flows) expect(sink.flows).to be_a Rackstash::Flows expect(sink.flows.to_a).to eql flows @@ -111,19 +111,19 @@ describe Rackstash::Sink do end describe '#close' do - let(:flow) { [a_flow, a_flow] } + let(:flows) { [a_flow, a_flow] } it 'calls close on all flows' do - expect(flow).to all receive(:close) + expect(flows).to all receive(:close) expect(sink.close).to be_nil end end describe '#reopen' do - let(:flow) { [a_flow, a_flow] } + let(:flows) { [a_flow, a_flow] } it 'calls reopen on all flows' do - expect(flow).to all receive(:reopen) + expect(flows).to all receive(:reopen) expect(sink.reopen).to be_nil end end @@ -134,7 +134,6 @@ describe Rackstash::Sink do allow(flow).to receive(:write) end } - let(:sink) { described_class.new(flows) } let(:buffer) { Rackstash::Buffer.new(sink) } it 'merges default_fields and default_tags' do