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