class Roqua::Healthy::A19::AddressParser
Attributes
message[R]
Public Class Methods
new(message)
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 8 def initialize(message) @message = message end
Public Instance Methods
address_type()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 12 def address_type return nil unless record record.fetch('PID.11.7') end
city()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 30 def city return nil unless record record.fetch('PID.11.3') end
country()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 40 def country return nil unless record record.fetch('PID.11.6') end
record()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 45 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
street()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 17 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
zipcode()
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 35 def zipcode return nil unless record record.fetch('PID.11.5') end
Private Instance Methods
get_address_of_type(message, type)
click to toggle source
# File lib/roqua/healthy/a19/address_parser.rb, line 60 def get_address_of_type(message, type) message.dig('PID', 'PID.11')&.find do |record| record.fetch('PID.11.7', :unknown_type_of_address_record) == type end end