2012-03-14 33 views
10

Tôi đang cố gắng để có một git pre-commit hook thực hiện kiểm tra cú pháp trên tất cả các mã Ruby; có một trên GitHub tại https://github.com/cypher/git-ruby-syntax-check.Làm cách nào để kiểm tra cú pháp (không hiển thị) tệp mẫu Rails 3 ERB?

Nó cố gắng kiểm tra tệp .erb bằng cách erb -x để dịch chúng sang mã Ruby và sau đó chuyển đầu ra thành ruby -c để kiểm tra cú pháp. Thật không may, Rails 3 đã giới thiệu một trình phân tích cú pháp ERB tùy chỉnh là incompatible với ERB chuẩn của Ruby, và vì vậy móc trước tiên tìm lỗi khi không có.

Có một số tương đương với erb -x sẽ xuất mã Ruby từ tệp Rails 3 ERB không?

+1

Nếu bạn kiểm tra tất cả chế độ xem của mình, bạn không cần xác thực kiểm tra này. – shingara

+0

@shingara Tôi không đồng ý. * Đây là một cách để kiểm tra chế độ xem của bạn, theo cách mà các thử nghiệm khác không thể thực hiện được. Đánh dấu không hợp lệ có thể vượt qua các bài kiểm tra chức năng của bạn vì trình duyệt "sửa" nó cho bạn, nhưng vẫn để lại các lỗi tinh vi hoặc gây ra các vấn đề trong tương lai, vì không có bài kiểm tra nào là 100% toàn diện. – antinome

+0

@shingara Hoặc có lẽ bạn đang nói "xác thực sau khi hiển thị, không phải trước" thay vì "không xác nhận gì cả"? Trong trường hợp này, tôi thấy điểm của bạn (và tôi có thể thấy một đối số theo cách :-) – antinome

Trả lời

10

Tôi chưa đào sâu vào một trong hai thứ này nhưng bạn có thể thử rails-erb-check (Git project) hoặc blog entry này. Tôi đồng ý với shingara nhưng Bài đăng trên blog mô tả tình huống ở đây hữu ích và tôi tự hỏi bạn có ở vị trí tương tự không:

Diaspora hiện khá ổn. Điều này có nghĩa là chúng tôi có một số thử nghiệm màu xanh lá cây , một số thử nghiệm còn thiếu và các thử nghiệm khác kiểm tra ý định (không thực hiện ). Trong một thế giới lý tưởng, tôi cho rằng các trường hợp thử nghiệm sẽ bao gồm tất cả các căn cứ của chúng tôi ...

Cho đến lúc đó, tôi đã thêm công việc mới vào ngã ba, check_syntax: tất cả. Điều này chia nhỏ hơn nữa để các subtasks check_syntax: erb, check_syntax: haml, check_syntax: haml_ruby, check_syntax: sass và check_syntax: yaml.

2

Nếu bạn gặp lỗi "danh sách đối số quá dài" để kiểm tra rails-erb, bạn có thể thử rails-erb-lint để quét thư mục lượt xem hiện tại của mình.

+1

Công cụ này có ý nghĩa rất nhiều so với câu trả lời được chấp nhận vì điều này cung cấp chức năng quét toàn bộ thư mục thay vì quét một tệp đơn cùng một lúc . – Swaps

+0

Nó được duy trì tốt. Có ít nhất hai người trong chúng ta quản lý dự án. Cho dù nó nhỏ đến mức nào, nó sẽ luôn hoạt động. – kgpdeveloper

Các vấn đề liên quan