The handler previously assumed there would be at least one entry in the
'files' array in the output JSON. It looks like this in the normal case:
"files":[{"path":"app/models/image.rb","offenses":[]}]
But if RuboCop's config excludes the specified input files, causing no
files to be linted, the output is emptier:
"files":[]
This change causes the handler to treat that case correctly, and also
exit early if the reported offense_count is zero.
* Use rubocop's JSON output format (resolves#339)
Rubocop's emacs formatter seems to have changed format in some
not-so-ancient version. The JSON formatter should provide a more stable
interface than parsing lines with a regex.
The JSON formatter was introduced in mid-2013, so it should be safe to
assume available in any reasonably-modern environment. The oldest
currently-supported version of ruby (according to ruby-lang.org) was
not supported by rubocop until 2014.
* Rubocop: Use global function for GetType
* Rubocop: Use scope prefix in GetType
* Rubocop: Update command_callback test
* Rubocop: add end_col to Handle