我想在數據庫中存儲簡短的代碼片段(遵循標準簽名),並在運行時「注入」它們。一種方法是使用eval(my_code)
。有沒有一些方法來使用斷點等來調試注入的代碼? (我正在使用盧西丁)我可以調試動態添加的Ruby方法嗎?
我知道我只能登錄到控制檯等,但我更喜歡IDE風格的調試,如果可能的話。
我想在數據庫中存儲簡短的代碼片段(遵循標準簽名),並在運行時「注入」它們。一種方法是使用eval(my_code)
。有沒有一些方法來使用斷點等來調試注入的代碼? (我正在使用盧西丁)我可以調試動態添加的Ruby方法嗎?
我知道我只能登錄到控制檯等,但我更喜歡IDE風格的調試,如果可能的話。
嗯。我們來分析一下你的問題。首先,它似乎與數據庫沒有任何關係:只需將源代碼塊中的代碼塊存儲在某處即可。它可以是文件或數據庫。其次,你不想要IDE風格的「調試」,但是TDD-style。 (但現在不要專注於這個問題。)
你需要什麼,是關於你的代碼的斷言。也就是說,您需要描述一下您的代碼在輸入示例時應該生成的輸出。然後,您需要運行該代碼並查看其功能是否符合預期。此外,如果您不確定片段的來源,run them in a sandbox (with $SAFE = 4)。如果你的代碼沒有達到預期的效果,那就提出一些很好的錯誤(TypeError,甚至更好,你自定義的例外),然後你可以例如。拯救這些例外,例如。使用一些默認的代碼片段...
...但也許我實際上並沒有回答你問的同一個問題。如果是這樣的話,那麼讓我分享一個鏈接到這個sourcify gem,讓你知道源代碼,這樣你就可以通過例如說插入一個斷點。在代碼中間需要'rdebug',甚至可以將代碼轉換爲sexps。這是我所知道的一切。
我提到數據庫作爲存儲代碼只是爲了提供上下文(我沒有把這個問題標記爲數據庫問題)。我也瞭解TDD等。您提供的寶石鏈接看起來很有前途,所以我今天會調查一下。謝謝! – 2013-05-01 11:58:52
我不認爲這是可能的。 – Linuxios 2013-04-30 23:18:25
看來Linuxios是正確的 - 基於我對IntelliJ的有限測試,這似乎是不可能的。 – 2013-04-30 23:32:56