diff options
author | w0rp <w0rp@users.noreply.github.com> | 2017-07-13 09:41:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-13 09:41:36 +0100 |
commit | bc97735b6d8778add601e5e71ccbb99237da95eb (patch) | |
tree | 6ac1a2b6c87e98e953f7fbdd45994ab14ce061c2 | |
parent | 588595419739e3fec9cad921824e0e07aadb440d (diff) | |
parent | dcbb0ffee536754df014085b03bf65cd2c21150f (diff) | |
download | ale-bc97735b6d8778add601e5e71ccbb99237da95eb.zip |
Merge pull request #767 from elebow/rubocop-handle-empty-files-output
Rubocop: handle empty 'files' array in output
-rw-r--r-- | ale_linters/ruby/rubocop.vim | 4 | ||||
-rw-r--r-- | test/handler/test_rubocop_handler.vader | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/ale_linters/ruby/rubocop.vim b/ale_linters/ruby/rubocop.vim index 9d315be1..a539b1ae 100644 --- a/ale_linters/ruby/rubocop.vim +++ b/ale_linters/ruby/rubocop.vim @@ -28,6 +28,10 @@ function! ale_linters#ruby#rubocop#Handle(buffer, lines) abort \}] endtry + if l:errors['summary']['offense_count'] == 0 || empty(l:errors['files']) + return [] + endif + let l:output = [] for l:error in l:errors['files'][0]['offenses'] diff --git a/test/handler/test_rubocop_handler.vader b/test/handler/test_rubocop_handler.vader index 3b447394..a6320014 100644 --- a/test/handler/test_rubocop_handler.vader +++ b/test/handler/test_rubocop_handler.vader @@ -41,6 +41,20 @@ Execute(The rubocop handler should parse lines correctly): \ '{"metadata":{"rubocop_version":"0.47.1","ruby_engine":"ruby","ruby_version":"2.1.5","ruby_patchlevel":"273","ruby_platform":"x86_64-linux-gnu"},"files":[{"path":"my_great_file.rb","offenses":[{"severity":"convention","message":"Prefer single-quoted strings...","cop_name":"Style/SomeCop","corrected":false,"location":{"line":83,"column":29,"length":7}},{"severity":"fatal","message":"Some error","cop_name":"Style/SomeOtherCop","corrected":false,"location":{"line":12,"column":2,"length":1}},{"severity":"warning","message":"Regular warning","cop_name":"Style/WarningCop","corrected":false,"location":{"line":10,"column":5,"length":8}},{"severity":"error","message":"Another error","cop_name":"Style/SpaceBeforeBlockBraces","corrected":false,"location":{"line":11,"column":1,"length":1}}]}],"summary":{"offense_count":4,"target_file_count":1,"inspected_file_count":1}}' \ ]) +Execute(The rubocop handler should handle when files are checked and no offenses are found): + AssertEqual + \ [], + \ ale_linters#ruby#rubocop#Handle(347, [ + \ '{"metadata":{"rubocop_version":"0.47.1","ruby_engine":"ruby","ruby_version":"2.1.5","ruby_patchlevel":"273","ruby_platform":"x86_64-linux-gnu"},"files":[{"path":"my_great_file.rb","offenses":[]}],"summary":{"offense_count":0,"target_file_count":1,"inspected_file_count":1}}' + \ ]) + +Execute(The rubocop handler should handle when no files are checked): + AssertEqual + \ [], + \ ale_linters#ruby#rubocop#Handle(347, [ + \ '{"metadata":{"rubocop_version":"0.47.1","ruby_engine":"ruby","ruby_version":"2.1.5","ruby_patchlevel":"273","ruby_platform":"x86_64-linux-gnu"},"files":[],"summary":{"offense_count":0,"target_file_count":0,"inspected_file_count":0}}' + \ ]) + Execute(Parse errors should be handled for rubocop): let g:lines = [ \ '/my/project/.rubocop.yml: Layout/MultilineOperationIndentation has the wrong namespace - should be Style', |