在我們的項目過程中,有多個開發人員和風格,我們有一些測試和代碼被註釋掉。有沒有簡單的方法來查找所有已註釋的代碼?工具/創業板找到評論代碼
該工具應該足夠聰明,以發現它是被評論的ruby代碼,而不是真實的評論。
在這一點上,我只能想到grep像grep #
,但它應該是更聰明和更少手動。
在我們的項目過程中,有多個開發人員和風格,我們有一些測試和代碼被註釋掉。有沒有簡單的方法來查找所有已註釋的代碼?工具/創業板找到評論代碼
該工具應該足夠聰明,以發現它是被評論的ruby代碼,而不是真實的評論。
在這一點上,我只能想到grep像grep #
,但它應該是更聰明和更少手動。
這可能是醜陋的,但我認爲你可以檢查每個「.rb」文件,使用rake任務,每行一行,使用正則表達式匹配它(類似於/#.*\n/),然後運行eval("matching_string")
在每場比賽。如果評論不是紅寶石代碼,它只會失敗。
大多數(如果不是全部)匹配的紅寶石線也將失敗。 –
是的,但如果提出的錯誤是NoMethod,也許可以假定該字符串是rb代碼。剛剛拍攝一個瘋狂的想法。 – nicooga
看來你需要一個looks_like_ruby
方法,所以你可以這樣做:
puts line if line =~ /^\s+#/ && looks_like_ruby(line)
一個快速和骯髒的實現(把我的頭頂部)
def looks_like_ruby(text)
text =~ Regexp.union((Kernel.methods + Object.methods).uniq.map(&:to_s))
end
並不完美,但好於grep #
區別「代碼」和「評論文本」是什麼? – BryanH
我猜如果它編譯它的代碼,否則它的評論:) – satyajit