Add support for Packwerk (#4594)

Packwerk (https://github.com/Shopify/packwerk) is a Ruby gem
used to enforce boundaries and modularize Rails applications.
This commit is contained in:
ymap
2023-09-13 23:53:24 +09:00
committed by GitHub
parent ac615e7f65
commit 9092af9ad6
7 changed files with 145 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
Before:
call ale#assert#SetUpLinterTest('ruby', 'packwerk')
call ale#test#SetFilename('../test-files/ruby/valid_rails_app/db/test.rb')
let g:ale_ruby_packwerk_executable = 'packwerk'
let g:ale_ruby_packwerk_options = ''
let b:sep = has('win32') ? '\' : '/'
After:
unlet! b:sep
call ale#assert#TearDownLinterTest()
Execute(Executable should default to packwerk):
AssertLinter 'packwerk', ale#Escape('packwerk')
\ . ' check '
\ . ale#Escape('db' . b:sep . 'test.rb')
Execute(Should be able to set a custom executable):
let g:ale_ruby_packwerk_executable = 'bin/packwerk'
AssertLinter 'bin/packwerk', ale#Escape('bin/packwerk')
\ . ' check '
\ . ale#Escape('db' . b:sep . 'test.rb')
Execute(Setting bundle appends 'exec packwerk'):
let g:ale_ruby_packwerk_executable = 'path to/bundle'
AssertLinter 'path to/bundle', ale#Escape('path to/bundle')
\ . ' exec packwerk'
\ . ' check '
\ . ale#Escape('db' . b:sep . 'test.rb')
Execute(Command callback should be empty when not in a valid Rails app):
call ale#test#SetFilename('../test-files/ruby/not_a_rails_app/test.rb')
AssertLinter 'packwerk', ''