Sha256: f8a7dad82f169557f49cb5f3d493125c659f19dd5412631653e73265e039da75
Contents?: true
Size: 1.69 KB
Versions: 2
Compression:
Stored size: 1.69 KB
Contents
require 'pp' require 'yaml' require 'roodi/core/checking_visitor' require 'roodi/core/iterator_visitor' require 'roodi/core/parser' require 'roodi/core/visitable_sexp' module Roodi module Core class ParseTreeRunner DEFAULT_CONFIG = File.join(File.dirname(__FILE__), "..", "..", "..", "roodi.yml") def initialize(*checks) @config = DEFAULT_CONFIG @checks = checks unless checks.empty? @parser = Parser.new end def check(filename, content) @checks ||= load_checks begin node = @parser.parse(content, filename) node.accept(IteratorVisitor.new(CheckingVisitor.new(@checks))) rescue Exception => e # puts e puts "#{filename} looks like it's not a valid Ruby file. Skipping..." end end def check_content(content) check("dummy-file.rb", content) end def check_file(filename) check(filename, File.read(filename)) end def print(filename, content) node = @parser.parse(content, filename) pp node end def print_content(content) print("dummy-file.rb", content) end def print_file(filename) print(filename, File.read(filename)) end def errors @checks ||= [] all_errors = @checks.collect {|check| check.errors} all_errors.flatten end private def load_checks check_objects = [] check_config = YAML.load_file @config checks = check_config["checks"] checks.each { |check| check_objects << eval("Roodi::Checks::#{check['name']}.new") } check_objects end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
roodi-0.5 | lib/roodi/core/parse_tree_runner.rb |
roodi-1.1.1 | lib/roodi/core/parse_tree_runner.rb |