Sha256: 0d991bad9d7d18604110116941553e1685d504e538c8504f2669c43755dc0fc2

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

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

      def initialize(
        tag: nil,
        reference_code_qualifier:,
        reference_identifier: nil,
        document_line_identifier: nil
        )
        @tag = tag
        @reference_code_qualifier = reference_code_qualifier
        @reference_identifier = reference_identifier
        @document_line_identifier = document_line_identifier

        super(tag: @tag || TAG)
      end

      def to_json_hash
        {
          identifier => {
            reference_identifier: @reference_identifier,
            document_line_identifier: @document_line_identifier
          },
          identifier: @identifier
        }
      end

      def group_name
        'references'
      end

      def segment_type
        TYPE
      end

      private

      def identifier
        @identifier ||= structure.find(:reference_code_qualifier).dictionary[@reference_code_qualifier][:identifier]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eancom-2.0.0 lib/eancom/edifact/segments/rff.rb