Sha256: 9799822055643045ff2087b9b46cadc3e5b6783c68d59b607c4400b5cb52232e

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Leftovers
  class Reporter
    def prepare; end

    def report(only_test:, none:)
      report_list('Only directly called in tests:', only_test)
      report_list('Not directly called at all:', none)
      report_instructions

      1
    end

    def report_success
      puts green('Everything is used')

      0
    end

    private

    def report_instructions
      puts <<~HELP

        how to resolve: #{green Leftovers.resolution_instructions_link}
      HELP
    end

    def report_list(title, list)
      return if list.empty?

      puts red(title)
      list.each { |d| print_definition(d) }
    end

    def print_definition(definition)
      puts "#{aqua definition.location_s} "\
        "#{definition} "\
        "#{grey definition.highlighted_source("\e[33m", "\e[0;2m")}"
    end

    def puts(string)
      Leftovers.puts(string)
    end

    def red(string)
      "\e[31m#{string}\e[0m"
    end

    def green(string)
      "\e[32m#{string}\e[0m"
    end

    def aqua(string)
      "\e[36m#{string}\e[0m"
    end

    def grey(string)
      "\e[2m#{string}\e[0m"
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
leftovers-0.10.0 lib/leftovers/reporter.rb
leftovers-0.9.0 lib/leftovers/reporter.rb
leftovers-0.8.0 lib/leftovers/reporter.rb
leftovers-0.7.0 lib/leftovers/reporter.rb
leftovers-0.6.0 lib/leftovers/reporter.rb
leftovers-0.5.5 lib/leftovers/reporter.rb
leftovers-0.5.4 lib/leftovers/reporter.rb
leftovers-0.5.3 lib/leftovers/reporter.rb
leftovers-0.5.2 lib/leftovers/reporter.rb
leftovers-0.5.1 lib/leftovers/reporter.rb
leftovers-0.5.0 lib/leftovers/reporter.rb
leftovers-0.4.3 lib/leftovers/reporter.rb