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
-
.quiet ⇒ Object
Returns the value of attribute quiet.
Class Method Summary collapse
- .log_close ⇒ Object
- .log_open ⇒ Object
- .logfile(file) ⇒ Object
- .message(*s) ⇒ Object
- .open ⇒ Object
- .postpone ⇒ Object
Class Attribute Details
.quiet ⇒ Object
Returns the value of attribute quiet
349 350 351 |
# File 'lib/mkmf.rb', line 349 def quiet @quiet end |
Class Method Details
.log_close ⇒ Object
323 324 325 326 327 328 329 |
# File 'lib/mkmf.rb', line 323 def self::log_close if @log and not @log.closed? @log.flush @log.close @log = nil end end |
.log_open ⇒ Object
298 299 300 301 |
# File 'lib/mkmf.rb', line 298 def self::log_open @log ||= File::open(@logfile, 'wb') @log.sync = true end |
.logfile(file) ⇒ Object
318 319 320 321 |
# File 'lib/mkmf.rb', line 318 def self::logfile file @logfile = file log_close end |
.message(*s) ⇒ Object
313 314 315 316 |
# File 'lib/mkmf.rb', line 313 def self::(*s) log_open @log.printf(*s) end |
.open ⇒ Object
303 304 305 306 307 308 309 310 311 |
# File 'lib/mkmf.rb', line 303 def self::open log_open $stderr.reopen(@log) $stdout.reopen(@log) yield ensure $stderr.reopen(@orgerr) $stdout.reopen(@orgout) end |
.postpone ⇒ Object
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 |
# File 'lib/mkmf.rb', line 331 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 |