Sha256: e7da2266a5f0b999d253ebc6b00b7e9ede95ea4b51f5c556613aad15d532b55b

Contents?: true

Size: 1.17 KB

Versions: 11

Compression:

Stored size: 1.17 KB

Contents

require 'preek/ext/smell_warning'
require 'preek/smell_file'
require 'preek/smell_klass'
module Preek
  class VerboseReport
    def self.verbose?
      true
    end

    def initialize(examiner, output)
      @examiner, @output = examiner, output
    end

    def report
      print_header
      if @examiner.smelly?
        report_smells
      else
        report_success
      end
    end

    private

    def print_header
      @output.print_line
      @output.blue :file, "#{@examiner.description}\n"
    end

    def smell_file
      SmellFile.new(@examiner)
    end

    def report_smells
      smell_file.klasses do |klass|
        @output.green :class, klass.name
        @output.red :smells, ''
        klass.smells.each &print_smell
      end
    end

    def print_smell
      lambda {|smell| @output.status nil, smell }
    end

    def print_klass_smells(smells)
      smells.each {|smell| @output.status nil, smell }
    end

    def report_success
      @output.green :success, "No smells detected.\n"
    end
  end

  class QuietReport < VerboseReport
    def self.verbose?
      false
    end

    def report
      print_header && report_smells if @examiner.smelly?
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
preek-1.7.0 lib/preek/report.rb
preek-1.6.0 lib/preek/report.rb
preek-1.5.1 lib/preek/report.rb
preek-1.5.0 lib/preek/report.rb
preek-1.4.3 lib/preek/report.rb
preek-1.4.2 lib/preek/report.rb
preek-1.4.1 lib/preek/report.rb
preek-1.4.0 lib/preek/report.rb
preek-1.3.2 lib/preek/report.rb
preek-1.3.1 lib/preek/report.rb
preek-1.2.1 lib/preek/report.rb