Как я могу синтаксически проверить (не отображать) файл шаблона Rails 3 ERB?

Я пытаюсь, чтобы крюк pre-commit git выполнял синтаксическую проверку всего кода Ruby; есть один на GitHub в https://github.com/cypher/git-ruby-syntax-check.

Он пытается проверить файлы .erb на erb -x, чтобы перевести их в код Ruby, а затем передает результат на ruby -c для проверки синтаксиса. К сожалению, Rails 3 представила пользовательский парсер ERB, который несовместим с стандартным ERB-кодом Ruby, и поэтому крюк pre-commit находит ошибки там, где их нет.

Есть ли какой-то эквивалент erb -x, который выведет Ruby-код из ERB файла Rails 3?

Ответ 1

Я не много вникнул в любой из них, но вы можете попробовать rails-erb-check (Git проект) или это запись в блоге. Я согласен с shingara, но в Blog Post описывается ситуация, когда это полезно, и мне интересно, находитесь ли вы в аналогичной позиции:

Диаспора довольно жидкая прямо сейчас. Это означает, что у нас есть зеленый тесты, некоторые пропущенные тесты и другие тесты, которые проверяют намерение (не реализация). В идеальном мире, я полагаю, все наши базы...

До тех пор, я добавил новую задачу к своей вилке, check_syntax: all. Эта далее разбивается на подзадачи check_syntax: erb, check_syntax: haml, check_syntax: haml_ruby, check_syntax: sass, и check_syntax:. YAML

Ответ 2

Если вы получаете "слишком длинную ошибку списка аргументов" для rails-erb-check, вы можете попробовать rails-erb-lint, который сканирует ваш текущий просмотра.