내 앱이 다른 방법으로 전달됩니다 (json_element
). 키가 다르거 나 비어있는 경우가 있습니다.ruby를 사용하여 DRY 방식으로 해시 값을 추출합니다.
def act_on_ruby_tag(json_element)
begin
# logger.progname = __method__
logger.debug json_element
code = json_element['CODE']['$'] unless json_element['CODE'].nil?
predicate = json_element['PREDICATE']['$'] unless json_element['PREDICATE'].nil?
replace = json_element['REPLACE-KEY']['$'] unless json_element['REPLACE-KEY'].nil?
hash = json_element['HASH']['$'] unless json_element['HASH'].nil?
내가 값을 하드 코딩 제거하고 싶습니다 어떻게 확신하지 :
그것을 처리하기 위해, 나는 다음과 같은 샘플 코드 추출을 하드 코딩되어있다.
keys = json_element.keys
keys.each do |k|
set_key = k.downcase
instance_variable_set("@" + set_key, json_element[k]['$']) unless json_element[k].nil?
end
을 그리고 방법의 나머지 부분에서, 예를 들어 @code
를 사용
나는이 하드 코드 된 코드를 모두 대체 한 다음 메서드로 바꾸려고했습니다.
그러나 이것이 좋은 경로인지는 확실하지 않았습니다.
감사합니다 ... 나는 "코브라브 스 몽구스 젬"을 실제로 사용하는 예술품임을 깨달았습니다.하지만 ... 진짜 문제는 당신이 논의하고있는 것입니다. 열쇠를 빼고 확인하는 것입니다. 오류가없는 값이 있거나없는 경우. 때때로 키 중 하나에 값이 없습니다. 비어 있습니다. 그것이 내가 'nil?'수표를 가지고있는 이유입니다. – Angela
빈과'nil? '은 다른 두 가지입니다. 단지 명심하십시오. 네가 탐색 할 수있는 것을 찾고 있다면, v 대 테스트만으로 충분하다. 최소 코드는 일반적으로 디버그하기가 쉽습니다. 이러한 경우에 – tadman