Sha256: 08e65c53abcb6d96b8ba49e5d036444d7bbadb970e0692e6f7f65beecdb0372f

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

module Eancom
  module Edifact
    class LOC < Segment
      TAG = 'LOC'.freeze
      TYPE = :body.freeze

      attr_reader :segment_type

      def initialize(
        tag: nil,
        location_function_qualifier:,
        location_name_code:,
        code_list_identification_code: nil,
        code_list_responsible_agancy_code: nil
      )
        @tag = tag
        @location_function_qualifier = location_function_qualifier
        @location_name_code = location_name_code
        @code_list_identification_code = code_list_identification_code
        @code_list_responsible_agancy_code = code_list_responsible_agancy_code

        super(tag: tag || TAG)
      end

      def to_json_hash
        hash = {}
        hash.merge!(location_function_qualifier: find_identifier(:location_function_qualifier)) if @location_function_qualifier
        hash.merge!(location_name_code: @location_name_code) if @location_name_code
        hash.merge!(code_list_identification_code: @code_list_identification_code) if @code_list_identification_code
        hash.merge!(code_list_responsible_agancy_code: find_identifier(:code_list_responsible_agancy_code)) if @code_list_responsible_agancy_code
        hash
        outer_hash = {}
        outer_hash.merge!({ location: hash})
        outer_hash
      end

      def starts_location?
        true
      end

      def segment_type
        TYPE
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
eancom-1.6.3 lib/eancom/edifact/segments/loc.rb
eancom-1.6.2 lib/eancom/edifact/segments/loc.rb
eancom-1.6.0 lib/eancom/edifact/segments/loc.rb