Sha256: cde414891911672bf3e02ef51c15d6d05df8f9c3de668b1615bf7c595b95278a

Contents?: true

Size: 1.68 KB

Versions: 3

Compression:

Stored size: 1.68 KB

Contents

module Mutant
  class Reporter
    # Reporter that reports in human readable format
    class CLI < self
      include Concord.new(:output, :format)

      # Build reporter
      #
      # @param [IO] output
      #
      # @return [Reporter::CLI]
      #
      # @api private
      #
      def self.build(output)
        tty = output.respond_to?(:tty?) && output.tty?
        format =
          if !Mutant.ci? && tty && Tput::INSTANCE.available
            Format::Framed.new(tty:  tty, tput: Tput::INSTANCE)
          else
            Format::Progressive.new(tty: tty)
          end

        new(output, format)
      end

      # Report start
      #
      # @param [Env] env
      #
      # @api private
      #
      def start(env)
        write(format.start(env))
        self
      end

      # Report progress object
      #
      # @param [Runner::Collector] collector
      #
      # @return [self]
      #
      # @api private
      #
      def progress(collector)
        write(format.progress(collector))

        self
      end

      # Report warning
      #
      # @param [String] message
      #
      # @return [self]
      #
      # @api private
      #
      def warn(message)
        output.puts(message)
        self
      end

      # Report env
      #
      # @param [Result::Env] env
      #
      # @return [self]
      #
      # @api private
      #
      def report(env)
        write(format.report(env))
        self
      end

    private

      # Write output frame
      #
      # @param [String] frame
      #
      # @return [undefined]
      #
      # @api private
      #
      def write(frame)
        output.write(frame)
      end

    end # CLI
  end # Reporter
end # Mutant

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutant-0.6.3 lib/mutant/reporter/cli.rb
mutant-0.6.2 lib/mutant/reporter/cli.rb
mutant-0.6.0 lib/mutant/reporter/cli.rb