summaryrefslogtreecommitdiff
path: root/lib/rake/trace_output.rb
blob: 396096d4df315812b5f82a77c52a9a0138cc3752 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Rake
  module TraceOutput # :nodoc: all

    # Write trace output to output stream +out+.
    #
    # The write is done as a single IO call (to print) to lessen the
    # chance that the trace output is interrupted by other tasks also
    # producing output.
    def trace_on(out, *strings)
      sep = $\ || "\n"
      if strings.empty?
        output = sep
      else
        output = strings.map { |s|
          next if s.nil?
          s =~ /#{sep}$/ ? s : s + sep
        }.join
      end
      out.print(output)
    end
  end
end