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