class Accesslint::Ci::Cli
Attributes
host[R]
Public Instance Methods
scan(host)
click to toggle source
# File lib/accesslint/ci/cli.rb, line 12 def scan(host) @host = host save_diff if skip_ci? puts current_errors elsif pr? && changes? post_comment end end
Private Instance Methods
baseline_errors()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 58 def baseline_errors if baseline_file @baseline_errors ||= ReadAccesslintLog.perform(baseline_file) else [] end end
baseline_file()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 66 def baseline_file options[:base] end
changes?()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 36 def changes? new_diff.any? end
circle_ci?()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 84 def circle_ci? !skip_ci? end
current_errors()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 54 def current_errors @current_errors ||= Scanner.perform(host: host).split("\n") end
existing_diff()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 70 def existing_diff if previous_diff_file @existing_diff ||= ReadAccesslintLog.perform(previous_diff_file) elsif circle_ci? && pr? @existing_diff ||= LogManager.get.split("\n") else [] end end
new_diff()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 40 def new_diff normalize_host(errors: new_errors) - normalize_host(errors: existing_diff) end
new_diff_file()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 95 def new_diff_file options[:outfile] || previous_diff_file || "accesslint.diff" end
new_errors()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 44 def new_errors normalize_host(errors: current_errors) - normalize_host(errors: baseline_errors) end
normalize_host(errors:)
click to toggle source
# File lib/accesslint/ci/cli.rb, line 48 def normalize_host(errors:) errors.map do |error| error.gsub(/localhost:\d+/, "localhost") end end
post_comment()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 99 def post_comment Commenter.perform(new_diff) end
pr?()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 32 def pr? ENV.fetch("CIRCLE_BRANCH") != "master" end
previous_diff_file()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 80 def previous_diff_file options[:compare] end
save_diff()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 88 def save_diff WriteAccesslintLog.perform( file_name: new_diff_file, contents: new_diff.join("\n"), ) end
skip_ci?()
click to toggle source
# File lib/accesslint/ci/cli.rb, line 28 def skip_ci? options[:"skip-ci"] end