module TeeSimple

Constants

VERSION

Public Class Methods

install(fn) click to toggle source
# File lib/tee_simple.rb, line 4
def self.install(fn)
        return if $stdout_tee

        $stdout_tee = if fn.kind_of?(String)
                File.open(fn,'w')
        elsif defined?(fn.write)
                fn
        end

        $stdout.instance_exec(fn) do
                break if defined? write_origin
                alias :write_origin :write 
                def write s
                        write_origin s
                        $stdout_tee.write s
                end
        end

        $stderr.instance_exec(fn) do
                break if defined? write_origin
                alias :write_origin :write 
                def write s
                        write_origin s
                        $stdout_tee.write s
                end
        end

        if fn.kind_of?(String)
                at_exit { $stdout_tee.close unless $stdout_tee.closed? }
        elsif defined?(fn.write)
        end

        true
end

Public Instance Methods

write(s) click to toggle source
# File lib/tee_simple.rb, line 16
def write s
        write_origin s
        $stdout_tee.write s
end