class LogStashLogger::Device::MultiDelegator
Attributes
devices[R]
Public Class Methods
new(opts)
click to toggle source
# 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
Private Class Methods
delegate(*methods)
click to toggle source
# 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
Private Instance Methods
create_devices(opts)
click to toggle source
# File lib/logstash-logger/device/multi_delegator.rb, line 19 def create_devices(opts) output_configurations = opts.delete(:outputs) output_configurations.map do |device_opts| device_opts = opts.merge(device_opts) Device.new(device_opts) end end