lib/access_lint/audit.rb in access_lint-0.0.9 vs lib/access_lint/audit.rb in access_lint-0.1.0

- old
+ new

@@ -1,19 +1,36 @@ require 'access_lint' require 'json' module AccessLint class Audit - RUNNER_PATH = File.expand_path("../../../vendor/access-lint/bin/auditor.js", __FILE__) + attr_reader :target def initialize(target) @target = target end def run - result = `phantomjs #{RUNNER_PATH} #{@target}` - if !result.nil? - JSON.parse(result) - end + perform_audit + end + + def runner + @runner ||= Runner.new(@target) + end + + private + + def perform_audit + runner.run + @output = runner.output + parse_output + end + + def parse_output + raw_results = JSON.parse(@output) + raw_results.map { |result| result.delete('elements') } + @results = raw_results.group_by { |result| result['status'] } + rescue Exception => e + raise AccessLint::ParserError.new(e.message) end end end