2012-03-14 9 views
10

मैं एक गिट प्री-प्रतिबद्ध हुक रखने की कोशिश कर रहा हूं, सभी रूबी कोड पर एक वाक्यविन्यास जांच करें; https://github.com/cypher/git-ruby-syntax-check पर गिटहब पर एक है।मैं रेल 3 ईआरबी टेम्पलेट फ़ाइल को चेक (अनुक्रमित नहीं) कैसे सिंटैक्स कर सकता हूं?

यह रूबी कोड में अनुवाद करने के लिए erb -x द्वारा .erb फ़ाइलों को जांचने का प्रयास करता है और फिर आउटपुट को सिंटैक्स जांच के लिए ruby -c पर पास करता है। दुर्भाग्यवश, रेल 3 ने एक कस्टम ईआरबी पार्सर पेश किया जो रूबी के मानक ईआरबी के साथ incompatible है, और इसलिए पूर्व-प्रतिबद्ध हुक त्रुटियों को ढूंढ रहा है जहां कोई भी नहीं है।

क्या erb -x के बराबर कुछ है जो रेल 3 ईआरबी फ़ाइल से रूबी कोड आउटपुट करेगा?

+1

यदि आप अपने सभी दृश्यों का परीक्षण करते हैं, तो आपको इस चेक सत्यापन की आवश्यकता नहीं है। – shingara

+0

@ शिंगारा मैं असहमत हूं। यह * आपके विचार का परीक्षण करने का एक तरीका है, एक तरह से अन्य परीक्षण नहीं कर सकते हैं। अमान्य मार्कअप आपके कार्यात्मक परीक्षणों को पारित कर सकता है क्योंकि ब्राउज़र आपके लिए "ठीक करता है", लेकिन फिर भी सूक्ष्म बग छोड़ देता है, या भविष्य की समस्याओं का कारण बनता है, क्योंकि कोई परीक्षण 100% व्यापक नहीं होता है। – antinome

+0

@ शिंगारा या शायद आप "बिल्कुल मान्य नहीं होने" के बजाय "प्रतिपादन के बाद मान्य, पहले नहीं" कह रहे थे? इस मामले में मैं आपका बिंदु देखता हूं (और मैं किसी भी तरह से तर्क देख सकता हूं :-) – antinome

उत्तर

10

मैंने इनमें से किसी एक में अधिक खोला नहीं है लेकिन आप rails-erb-check (Git project) या यह blog entry आजमा सकते हैं। मैं शिंगारा से सहमत हूं लेकिन ब्लॉग पोस्ट एक ऐसी स्थिति का वर्णन करता है जहां यह उपयोगी है और मुझे आश्चर्य है कि आप एक समान स्थिति में हैं:

डायस्पोरा अभी बहुत तरल पदार्थ है। इसका मतलब है कि हमारे पास कुछ हरे परीक्षण, कुछ गायब परीक्षण, और अन्य परीक्षण हैं जो इरादे की जांच करते हैं ( कार्यान्वयन नहीं)। एक आदर्श दुनिया में, मुझे लगता है कि परीक्षण के मामले हमारे सभी अड्डों को कवर करेंगे ...

तब तक, मैंने अपने कांटा, check_syntax: सभी को एक नया कार्य जोड़ा है। यह subtasks को आगे तोड़ता है check_syntax: erb, check_syntax: haml, check_syntax: haml_ruby, check_syntax: sass, और check_syntax: yaml।

2

आप एक "तर्क सूची बहुत लंबा त्रुटि" रेल-ERB की जांच के लिए मिलता है, तो आप rails-erb-lint जो अपने वर्तमान विचारों फ़ोल्डर को स्कैन करता है की कोशिश कर सकते हैं।

+1

यह टूल स्वीकार किए गए उत्तरों की तुलना में बहुत अधिक समझ में आता है क्योंकि यह एक ही फ़ाइल को स्कैन करने के बजाए पूरे फ़ोल्डर को स्कैन करने की कार्यक्षमता प्रदान करता है । – Swaps

+0

यह अच्छी तरह से बनाए रखा है। हम में से कम से कम दो परियोजना का प्रबंधन कर रहे हैं। इससे कोई फर्क नहीं पड़ता कि यह कितना छोटा है, यह हमेशा काम करेगा। – kgpdeveloper

संबंधित मुद्दे