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