Module: MakeMakefile::Logging

Defined in:
lib/mkmf.rb

Overview

This is a custom logging module. It generates an mkmf.log file when you run your extconf.rb script. This can be useful for debugging unexpected failures.

This module and its associated methods are meant for internal use only.

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.quietObject

Returns the value of attribute quiet



362
363
364
# File 'lib/mkmf.rb', line 362

def quiet
  @quiet
end

Class Method Details

.log_closeObject



336
337
338
339
340
341
342
# File 'lib/mkmf.rb', line 336

def self::log_close
  if @log and not @log.closed?
    @log.flush
    @log.close
    @log = nil
  end
end

.log_openObject



307
308
309
310
# File 'lib/mkmf.rb', line 307

def self::log_open
  @log ||= File::open(@logfile, 'wb')
  @log.sync = true
end

.log_opened?Boolean

Returns:

  • (Boolean)


312
313
314
# File 'lib/mkmf.rb', line 312

def self::log_opened?
  @log and not @log.closed?
end

.logfile(file) ⇒ Object



331
332
333
334
# File 'lib/mkmf.rb', line 331

def self::logfile file
  @logfile = file
  log_close
end

.message(*s) ⇒ Object



326
327
328
329
# File 'lib/mkmf.rb', line 326

def self::message(*s)
  log_open
  @log.printf(*s)
end

.openObject



316
317
318
319
320
321
322
323
324
# File 'lib/mkmf.rb', line 316

def self::open
  log_open
  $stderr.reopen(@log)
  $stdout.reopen(@log)
  yield
ensure
  $stderr.reopen(@orgerr)
  $stdout.reopen(@orgout)
end

.postponeObject



344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
# File 'lib/mkmf.rb', line 344

def self::postpone
  tmplog = "mkmftmp#{@postpone += 1}.log"
  open do
    log, *save = @log, @logfile, @orgout, @orgerr
    @log, @logfile, @orgout, @orgerr = nil, tmplog, log, log
    begin
      log.print(open {yield @log})
    ensure
      @log.close if @log and not @log.closed?
      File::open(tmplog) {|t| FileUtils.copy_stream(t, log)} if File.exist?(tmplog)
      @log, @logfile, @orgout, @orgerr = log, *save
      @postpone -= 1
      MakeMakefile.rm_f tmplog
    end
  end
end