shard-ameba/src/ameba.cr

31 lines
629 B
Crystal
Raw Normal View History

2017-10-26 16:46:58 +00:00
require "./ameba/*"
2017-11-01 11:10:34 +00:00
require "./ameba/ast/*"
2017-10-30 20:00:01 +00:00
require "./ameba/rules/*"
2017-10-26 16:46:58 +00:00
module Ameba
2017-10-26 17:47:42 +00:00
extend self
2017-10-26 19:45:48 +00:00
def run(formatter = DotFormatter.new)
run Dir["**/*.cr"].reject(&.starts_with? "lib/"), formatter
2017-10-26 17:47:42 +00:00
end
2017-10-26 19:45:48 +00:00
def run(files, formatter : Formatter)
2017-10-31 20:11:49 +00:00
sources = files.map { |path| Source.new(File.read(path), path) }
2017-10-26 19:45:48 +00:00
reporter = Reporter.new formatter
reporter.start sources
sources.each do |source|
catch(source)
reporter.report source
2017-10-26 17:47:42 +00:00
end
2017-10-26 19:45:48 +00:00
reporter.try &.finish sources
sources
2017-10-26 17:47:42 +00:00
end
def catch(source : Source)
2017-11-01 10:49:03 +00:00
Rule.rules.each do |rule|
2017-10-26 17:47:42 +00:00
rule.new.test(source)
end
end
2017-10-26 16:46:58 +00:00
end