Я хотел бы знать лучший или самый правильный способ рефакторинга.Начинающий вопрос рефакторинга
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?
Было бы более идиоматично говорить «если id_element» на последней строке вместо «если id_element.nil?» – gregspurrier
Я думаю, что самый революционный рефакторинга будет использовать XML-объекта библиотеки отображения как happymapper и оставить все это грязные детали реализации под капотом.
DigitalRoss правильный, именно то, что я собираюсь поставить. Функция 'try' творит чудеса. – ardavis
Это хороший. Хотя он ведет себя несколько иначе: он всегда будет добавлять ключ ': series'. Эффект в большинстве случаев тот же. 'series [: series_id]' также будет возвращать 'nil', если ключ не определен, если только они явно не проверяют наличие ключа. – nathanvda