Sha256: 03704437c5b074b8efb28f02a316a94d50c532369211eb56309d24bc59160b76
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true module Roqua module Healthy module A19 class AddressParser attr_reader :message def initialize(message) @message = message end def address_type return nil unless record record.fetch('PID.11.7') end def street return nil if record.blank? || record.fetch('PID.11.1').blank? street = record.fetch('PID.11.1').fetch('PID.11.1.1') suffix = record.fetch('PID.11.2', nil) if suffix.present? && !street.end_with?(suffix) street + suffix else street end end def city return nil unless record record.fetch('PID.11.3') end def zipcode return nil unless record record.fetch('PID.11.5') end def country return nil unless record record.fetch('PID.11.6') end def 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
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
roqua-healthy-1.5.10 | lib/roqua/healthy/a19/address_parser.rb |