jeremywrowe/buildem

View on GitHub
lib/buildem/logger.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'stringio'
module Kernel
  
  def output_to(filename="output.log", stream=:stdout)
    if block_given?
      begin
        stream = stream.to_s
        eval "$#{stream} = StringIO.new"
        yield
        result = eval("$#{stream}").string
      ensure
        eval("$#{stream} = #{stream.upcase}")
      end
    else
      fail "output_to must be used in block format with a 'do' and 'end'."
    end
    
    File.open(filename, "w+") {|f| f.puts result }
    
  end
  
end