Module: TreasureData::Logger::TreasureDataLogger::Finalizable

Included in:
TreasureData::Logger::TreasureDataLogger
Defined in:
lib/td/logger/td_logger.rb

Instance Method Summary collapse

Instance Method Details

#finalizer(obj) ⇒ Object



16
17
18
19
20
21
# File 'lib/td/logger/td_logger.rb', line 16

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

#new(*args, &block) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/td/logger/td_logger.rb', line 8

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