Report problems in other files for brakeman, and get the tests to pass on Windows

This commit is contained in:
w0rp
2017-09-13 23:33:13 +01:00
parent 3d2bddf4af
commit 52c933cd72
2 changed files with 12 additions and 15 deletions

View File

@@ -7,23 +7,19 @@ let g:ale_ruby_brakeman_options =
function! ale_linters#ruby#brakeman#Handle(buffer, lines) abort
let l:output = []
let l:json = ale#util#FuzzyJSONDecode(a:lines, {})
let l:sep = has('win32') ? '\' : '/'
" Brakeman always outputs paths relative to the Rails app root
let l:rails_root = ale#ruby#FindRailsRoot(a:buffer)
for l:warning in get(l:json, 'warnings', [])
" Brakeman always outputs paths relative to the Rails app root
let l:rails_root = ale#ruby#FindRailsRoot(a:buffer)
let l:warning_file = l:rails_root . '/' . l:warning.file
if !ale#path#IsBufferPath(a:buffer, l:warning_file)
continue
endif
let l:text = l:warning.warning_type . ' ' . l:warning.message . ' (' . l:warning.confidence . ')'
let l:line = l:warning.line != v:null ? l:warning.line : 1
call add(l:output, {
\ 'lnum': l:line,
\ 'type': 'W',
\ 'text': l:text,
\ 'filename': l:rails_root . l:sep . l:warning.file,
\ 'lnum': l:line,
\ 'type': 'W',
\ 'text': l:text,
\})
endfor