lib/roqua/healthy/a19/address_parser.rb in roqua-healthy-1.5.2 vs lib/roqua/healthy/a19/address_parser.rb in roqua-healthy-1.5.3

- old
+ new

@@ -33,14 +33,27 @@ return nil unless record record.fetch('PID.11.6') end def record - @record = nil - @record ||= message.fetch('PID').fetch('PID.11').find { |record| record.fetch('PID.11.7', :unknown_type_of_address_record) == 'M' } - @record ||= message.fetch('PID').fetch('PID.11').find { |record| record.fetch('PID.11.7', :unknown_type_of_address_record) == 'H' } - @record ||= message.fetch('PID').fetch('PID.11').find { |record| record.fetch('PID.11.7', :unknown_type_of_address_record) == 'L' } - @record + # PID.11.7 address types: + # M: Mailing + # P: Permanent + # H: Home + # L: Legal address + + @record ||= get_address_of_type(message, 'M') || + get_address_of_type(message, 'P') || + get_address_of_type(message, 'H') || + get_address_of_type(message, 'L') + end + + private + + def get_address_of_type(message, type) + message.fetch('PID').fetch('PID.11').find do |record| + record.fetch('PID.11.7', :unknown_type_of_address_record) == type + end end end end end end