From 758461b5207aee9fc04c70fd376b8ae9518672b9 Mon Sep 17 00:00:00 2001 From: Richard Brown Date: Wed, 19 Sep 2012 11:17:33 +0100 Subject: [PATCH] eruby: No need to call sed The original fix for issue #7 used sed and didn't update the `executable` check from cat to sed. This patch uses String.gsub when parsing an erb file instead, as sed isn't neccesarily available. --- syntax_checkers/eruby.vim | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/syntax_checkers/eruby.vim b/syntax_checkers/eruby.vim index 52cec3a3..a066d922 100644 --- a/syntax_checkers/eruby.vim +++ b/syntax_checkers/eruby.vim @@ -14,21 +14,24 @@ if exists("loaded_eruby_syntax_checker") endif let loaded_eruby_syntax_checker = 1 -"bail if the user doesnt have ruby or cat installed -if !executable("ruby") || !executable("cat") +"bail if the user doesnt have ruby installed +if !executable("ruby") finish endif function! SyntaxCheckers_eruby_GetLocList() + "gsub fixes issue #7 rails has it's own eruby syntax if has('win32') - let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| ruby -c' + let makeprg='ruby -rerb -e "puts ERB.new(File.read(''' . + \ (expand("%")) . + \ ''').gsub(''<\%='',''<\%''), nil, ''-'').src" \| ruby -c' else - let makeprg='sed "s/<\%=/<\%/g" '. shellescape(expand("%")) . ' \| RUBYOPT= ruby -e "require \"erb\"; puts ERB.new(ARGF.read, nil, \"-\").src" \| RUBYOPT= ruby -c' + let makeprg='RUBYOPT= ruby -rerb -e "puts ERB.new(File.read(''' . + \ (expand("%")) . + \ ''').gsub(''<\%='',''<\%''), nil, ''-'').src" \| RUBYOPT= ruby -c' endif let errorformat='%-GSyntax OK,%E-:%l: syntax error\, %m,%Z%p^,%W-:%l: warning: %m,%Z%p^,%-C%.%#' - return SyntasticMake({ 'makeprg': makeprg, - \ 'errorformat': errorformat, - \ 'defaults': {'bufnr': bufnr("")} }) + return SyntasticMake({ 'makeprg': makeprg, 'errorformat': errorformat}) endfunction