Module: Fluent::Logger::FluentLogger::Finalizable

Included in:
Fluent::Logger::FluentLogger
Defined in:
lib/fluent/logger/fluent_logger.rb

Instance Method Summary collapse

Instance Method Details

#finalizer(obj) ⇒ Object



39
40
41
42
43
44
# File 'lib/fluent/logger/fluent_logger.rb', line 39

def finalizer(obj)
  fin = obj.method(:finalize)
  proc {|id|
    fin.call
  }
end

#new(*args, &block) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/fluent/logger/fluent_logger.rb', line 31

def new(*args, &block)
  obj = allocate
  obj.instance_eval { initialize(*args, &block) }
  dc = DelegateClass(obj.class).new(obj)
  ObjectSpace.define_finalizer(dc, finalizer(obj))
  dc
end