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
- .log_opened? ⇒ Boolean
- .logfile(file) ⇒ Object
- .message(*s) ⇒ Object
- .open ⇒ Object
- .postpone ⇒ Object
Class Attribute Details
.quiet ⇒ Object
Returns the value of attribute quiet
363 364 365 |
# File 'lib/mkmf.rb', line 363 def quiet @quiet end |
Class Method Details
.log_close ⇒ Object
337 338 339 340 341 342 343 |
# File 'lib/mkmf.rb', line 337 def self::log_close if @log and not @log.closed? @log.flush @log.close @log = nil end end |
.log_open ⇒ Object
308 309 310 311 |
# File 'lib/mkmf.rb', line 308 def self::log_open @log ||= File::open(@logfile, 'wb') @log.sync = true end |
.log_opened? ⇒ Boolean
313 314 315 |
# File 'lib/mkmf.rb', line 313 def self::log_opened? @log and not @log.closed? end |
.logfile(file) ⇒ Object
332 333 334 335 |
# File 'lib/mkmf.rb', line 332 def self::logfile file @logfile = file log_close end |
.message(*s) ⇒ Object
327 328 329 330 |
# File 'lib/mkmf.rb', line 327 def self::(*s) log_open @log.printf(*s) end |
.open ⇒ Object
317 318 319 320 321 322 323 324 325 |
# File 'lib/mkmf.rb', line 317 def self::open log_open $stderr.reopen(@log) $stdout.reopen(@log) yield ensure $stderr.reopen(@orgerr) $stdout.reopen(@orgout) end |
.postpone ⇒ Object
345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
# File 'lib/mkmf.rb', line 345 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 |