Sha256: e779cfe7edb0c04973172d2cc6d54a0b37924a66b05876e213917facf3f0af90

Contents?: true

Size: 1.28 KB

Versions: 5

Compression:

Stored size: 1.28 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?
          record.fetch('PID.11.1').fetch('PID.11.1.1')
        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
          @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
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
roqua-healthy-1.5.2 lib/roqua/healthy/a19/address_parser.rb
roqua-healthy-1.5.1 lib/roqua/healthy/a19/address_parser.rb
roqua-healthy-1.5.0 lib/roqua/healthy/a19/address_parser.rb
roqua-healthy-1.4.3 lib/roqua/healthy/a19/address_parser.rb
roqua-healthy-1.4.2 lib/roqua/healthy/a19/address_parser.rb