Module: Logging

Defined in:
lib/mkmf.rb

Class Method Summary collapse

Class Method Details

.logfile(file) ⇒ Object



192
193
194
195
196
197
198
199
# File 'lib/mkmf.rb', line 192

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

.message(*s) ⇒ Object



186
187
188
189
190
# File 'lib/mkmf.rb', line 186

def self::message(*s)
  @log ||= File::open(@logfile, 'w')
  @log.sync = true
  @log.printf(*s)
end

.openObject



175
176
177
178
179
180
181
182
183
184
# File 'lib/mkmf.rb', line 175

def self::open
  @log ||= File::open(@logfile, 'w')
  @log.sync = true
  $stderr.reopen(@log)
  $stdout.reopen(@log)
  yield
ensure
  $stderr.reopen(@orgerr)
  $stdout.reopen(@orgout)
end

.postponeObject



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/mkmf.rb', line 201

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.close
      File::open(tmplog) {|t| FileUtils.copy_stream(t, log)}
    ensure
      @log, @logfile, @orgout, @orgerr = log, *save
      @postpone -= 1
      rm_f tmplog
    end
  end
end