class Preek::Examiner
Public Class Methods
new(files, excludes = [], options = {})
click to toggle source
# File lib/preek/examiner.rb, line 5 def initialize(files, excludes = [], options = {}) @files = files @excludes = excludes @reporter = options[:reporter] || VerboseReport output_class = options[:output] || Output @output = output_class.new @total_smells = 0 end
Public Instance Methods
perform()
click to toggle source
# File lib/preek/examiner.rb, line 14 def perform examine_and_report @output.separated do report_success if report_success? report_total_smells unless success? report_non_existing if non_existing_files? end end
Private Instance Methods
examine_and_report()
click to toggle source
# File lib/preek/examiner.rb, line 24 def examine_and_report sources.each do |source| examiner = Reek::Examiner.new(source) filter_excludes_from(examiner) @reporter.new(examiner, @output).report @total_smells += examiner.smells_count end end
existing_files()
click to toggle source
# File lib/preek/examiner.rb, line 59 def existing_files @existing_files ||= @files.select {|file| File.exists? file} end
filter_excludes_from(examiner)
click to toggle source
# File lib/preek/examiner.rb, line 33 def filter_excludes_from(examiner) examiner.smells.delete_if do |smell| @excludes.include? smell.smell_type end end
non_existing_files()
click to toggle source
# File lib/preek/examiner.rb, line 67 def non_existing_files @files - existing_files end
non_existing_files?()
click to toggle source
# File lib/preek/examiner.rb, line 63 def non_existing_files? !non_existing_files.empty? end
report_non_existing()
click to toggle source
# File lib/preek/examiner.rb, line 55 def report_non_existing @output.red :error, %{No such file(s) - #{non_existing_files.join(', ')}.\n} end
report_success()
click to toggle source
# File lib/preek/examiner.rb, line 47 def report_success @output.green :success, %(No smells detected) end
report_success?()
click to toggle source
# File lib/preek/examiner.rb, line 43 def report_success? !@reporter.verbose? && @sources.count > 0 && success? end
report_total_smells()
click to toggle source
# File lib/preek/examiner.rb, line 51 def report_total_smells @output.red :total, @total_smells end
sources()
click to toggle source
# File lib/preek/examiner.rb, line 71 def sources @sources ||= Reek::Source::SourceLocator.new(existing_files).all_sources end
success?()
click to toggle source
# File lib/preek/examiner.rb, line 39 def success? @total_smells == 0 end