aa29c91cdc
Erubi is yet another parser for eRuby. This is the default parser in Rails as of version 5.1. It supports some additional syntax with similar behavior to Rails' extensions to the language, though incompatible. Rails currently still recommends their own syntax, so GetCommand still has to do the translation introduced in https://github.com/w0rp/ale/pull/1114 . Erubi does not supply an executable—It is intended to be invoked only from within a Ruby program. In this case, a one-liner on the command line.
31 lines
1.3 KiB
Text
31 lines
1.3 KiB
Text
Before:
|
|
runtime ale_linters/eruby/erubi.vim
|
|
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
|
|
|
After:
|
|
call ale#linter#Reset()
|
|
call ale#test#RestoreDirectory()
|
|
|
|
Execute(Executable should not contain any filter code by default):
|
|
call ale#test#SetFilename('../ruby_fixtures/not_a_rails_app/file.rb')
|
|
|
|
AssertEqual
|
|
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read).src') . '< %t | ruby -c',
|
|
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), [])
|
|
|
|
Execute(Executable should filter invalid eRuby when inside a Rails project):
|
|
call ale#test#SetFilename('../ruby_fixtures/valid_rails_app/app/views/my_great_view.html.erb')
|
|
|
|
AssertEqual
|
|
\ 'ruby -r erubi/capture_end -e ' . ale#Escape('puts Erubi::CaptureEndEngine.new($stdin.read.gsub(%{<%=},%{<%}), nil, %{-}).src') . '< %t | ruby -c',
|
|
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), [])
|
|
|
|
Execute(Command should be blank if the first command in the chain return output):
|
|
let output_lines = [
|
|
\ "/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- erubi/capture_end (LoadError)",
|
|
\ " from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'",
|
|
\]
|
|
|
|
AssertEqual
|
|
\ '',
|
|
\ ale_linters#eruby#erubi#GetCommand(bufnr(''), output_lines)
|