Module: MakeMakefile::Logging
Do not use. This module is for internal use only.
Relationships & Source Files | |
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
- .log_opened? ⇒ Boolean readonly
- .quiet rw
Class Method Summary
Class Attribute Details
.log_opened? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/mkmf.rb', line 332
def self::log_opened? @log and not @log.closed? end
.quiet (rw)
[ GitHub ]# File 'lib/mkmf.rb', line 382
attr_accessor :quiet
Class Method Details
.log_close
[ GitHub ]# File 'lib/mkmf.rb', line 356
def self::log_close if @log and not @log.closed? @log.flush @log.close @log = nil end end
.log_open
[ GitHub ]# File 'lib/mkmf.rb', line 327
def self::log_open @log ||= File::open(@logfile, 'wb') @log.sync = true end
.logfile(file)
[ GitHub ]# File 'lib/mkmf.rb', line 351
def self::logfile file @logfile = file log_close end
.message(*s)
[ GitHub ]# File 'lib/mkmf.rb', line 346
def self:: (*s) log_open @log.printf(*s) end
.open
[ GitHub ]# File 'lib/mkmf.rb', line 336
def self::open log_open $stderr.reopen(@log) $stdout.reopen(@log) yield ensure $stderr.reopen(@orgerr) $stdout.reopen(@orgout) end
.postpone
[ GitHub ]# File 'lib/mkmf.rb', line 364
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