यह रुबी डीबगर का परिणाम रूबी दुभाषिया से अलग पार्सिंग नियमों का परिणाम है। वास्तव में, नियमित रूबी डीबगर, irb
से या ruby
कमांड से इसी तरह के व्यवहार को प्रदर्शित करता है। एक स्ट्रिंग शाब्दिक एक भी अर्धविराम से मिलकर बना सकते हैं, सिर्फ एक बैकस्लैश के साथ यह से बचने के लिए:
$ irb
> require 'debugger'
=> true
> debugger
(rdb:1) ';'
*** SyntaxError Exception: /usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/irb/context.rb:166: unterminated string meets end of file
(rdb:1) '\;'
";"
यह ध्यान रखें कि रूबी डिबगर कमांड लाइन पार्सर नहीं है महत्वपूर्ण है वैकल्पिक हल, हालांकि, स्पष्ट है irb
या ruby
दुभाषिया के द्वारा प्रयोग किया पार्सर के रूप में ही: यह चारों ओर पार्स डिबगर आदेशों बनाया गया है backtrace
जैसे, break
आदि और नहीं (irb
के मामले में खोल की तरह एक्सटेंशन के साथ) रूबी भाषा पार्स करने के लिए। रूबी (या रूबी-शैली) अभिव्यक्तियों का मूल्यांकन करने के लिए इसका सीमित समर्थन है। यह निश्चित रूप से रूबी कार्यक्रमों के प्रभावी डीबगिंग के लिए महत्वपूर्ण है। हालांकि, आपको यह उम्मीद नहीं करनी चाहिए कि यह irb
या ruby
कमांड को पार्स करने में सक्षम हो, तो कमांड स्वयं ही चीजों को पार्स या पार्स करने में सक्षम होगा। कुछ मामलों में, इस तरह, यह कुछ अभिव्यक्तियों को संभाल सकता है लेकिन रूबी भाषा के विपरीत डीबगर के पार्सिंग नियमों के अधीन उन्हें बचने की आवश्यकता है।
रेल सांत्वना irb
के शीर्ष पर बनाया गया, और इस प्रकार एक रूबी खोल है और रूबी भाषा सिर्फ irb
और ruby
तरह की पार्स नियम का सम्मान करता है।
स्रोत
2013-08-05 16:50:08
मुझे gsub ('\;', ',') का उपयोग करने में एक ही समस्या थी - दुभाषिया ने एक काम किया, डीबग प्रॉम्प्ट ने दूसरा किया – Mitch