Class: LogStashLogger::Device::MultiDelegator

Inherits:
Base
  • Object
show all
Defined in:
lib/logstash-logger/device/multi_delegator.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#error_logger, #io, #sync

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#close, #close!, #flush, #reset, #to_io, #unrecoverable_error?, #write, #write_batch, #write_one

Constructor Details

#initialize(opts) ⇒ MultiDelegator

Returns a new instance of MultiDelegator.



11
12
13
14
15
# File 'lib/logstash-logger/device/multi_delegator.rb', line 11

def initialize(opts)
  @io = self
  @devices = create_devices(opts)
  self.class.delegate(:write, :close, :close!, :flush)
end

Instance Attribute Details

#devices ⇒ Object (readonly)

Returns the value of attribute devices.



9
10
11
# File 'lib/logstash-logger/device/multi_delegator.rb', line 9

def devices
  @devices
end

Class Method Details

.delegate(*methods) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/logstash-logger/device/multi_delegator.rb', line 27

def self.delegate(*methods)
  methods.each do |m|
    define_method(m) do |*args|
      @devices.each { |device| device.send(m, *args) }
    end
  end
end