lib/rubycritic.rb in rubycritic-0.0.1 vs lib/rubycritic.rb in rubycritic-0.0.2

- old
+ new

@@ -1,23 +1,27 @@ require "rubycritic/source_locator" -require "rubycritic/analysers/reek" -require "rubycritic/smell_adapters/reek" +require "rubycritic/analysers_runner" require "rubycritic/smells_aggregator" -require "rubycritic/report_generators/report_generator" +require "rubycritic/source_control_systems/source_control_system" +require "rubycritic/revision_comparator" +require "rubycritic/report_generators/reporter" module Rubycritic class Rubycritic - def initialize(paths) - @source = SourceLocator.new(paths) - - analyser = Analyser::Reek.new(@source.paths) - smell_adapters = [ SmellAdapter::Reek.new(analyser) ] - @aggregator = SmellsAggregator.new(smell_adapters) + def initialize(dirs) + @source = SourceLocator.new(dirs) + @source_control_system = SourceControlSystem.create end def critique - ReportGenerator.new(@source.pathnames, @aggregator.smelly_pathnames).generate_report + if @source_control_system.has_revision? + smelly_pathnames = RevisionComparator.new(@source.paths, @source_control_system).compare + else + smell_adapters = AnalysersRunner.new(@source.paths).run + smelly_pathnames = SmellsAggregator.new(smell_adapters).smelly_pathnames + end + Reporter.new(@source.pathnames, smelly_pathnames).generate_report end end end