我想知道重構這個最好或最正確的方法。初學者重構問題
series = Hash.new
series[:series_id] = doc.xpath("Data/Series/id").inner_text if not doc.xpath("Data/Series/id").nil?
我想知道重構這個最好或最正確的方法。初學者重構問題
series = Hash.new
series[:series_id] = doc.xpath("Data/Series/id").inner_text if not doc.xpath("Data/Series/id").nil?
series = { :series_id => doc.xpath("Data/Series/id").try(:inner_text) }
喜歡的東西
series = Hash.new
id_element = doc.xpath("Data/Series/id")
series[:series_id] = id_element.inner_text unless id_element.nil?
在最後一行說「if id_element」而不是「除非id_element.nil? – gregspurrier
我覺得最革命性的重構將使用XML映射到對象庫就像happymapper,並留下所有的引擎蓋下這骯髒的實施細則。
DigitalRoss是正確的,正是我想要的。 'try'函數可以創造奇蹟。 – ardavis
這是一個不錯的。雖然表現稍有不同:它會一直添加':series'鍵。效果在大多數情況下是相同的。如果密鑰未定義,'series [:series_id]'也將返回'nil',除非它們明確地測試了密鑰的存在。 – nathanvda