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 336
def self::log_opened? @log and not @log.closed? end
.quiet (rw)
[ GitHub ]# File 'lib/mkmf.rb', line 386
attr_accessor :quiet
Class Method Details
.log_close
[ GitHub ]# File 'lib/mkmf.rb', line 360
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 331
def self::log_open @log ||= File::open(@logfile, 'wb') @log.sync = true end
.logfile(file)
[ GitHub ]# File 'lib/mkmf.rb', line 355
def self::logfile file @logfile = file log_close end
.message(*s)
[ GitHub ]# File 'lib/mkmf.rb', line 350
def self:: (*s) log_open @log.printf(*s) end
.open
[ GitHub ]# File 'lib/mkmf.rb', line 340
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 368
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