Sha256: 47b6d22be077812bb05bb3c616ee420d63458b15dbf085ca147fe66d3e070753

Contents?: true

Size: 1.04 KB

Versions: 5

Compression:

Stored size: 1.04 KB

Contents

module Tufy
  class BuildHeaderSegment < BuildSegment
    expects :header_data
    promises :transformed_data

    REQUIRED_KEYS = [
      :processor_name,
      :user_id
    ]

    executed do |ctx|
      validate_presence_of_required_keys(ctx.header_data, REQUIRED_KEYS)
      ctx.transformed_data = ctx.transformed_data + transform(ctx).upcase
    end

    private

    def self.transform(ctx)
      Constants::SEGMENT_TAG + # Segment Tag (Required)
        Constants::TUDF_VERSION + # Version Tag (Required)
        "#{FormatStrings::F25TS % Time.now.to_i.to_s}" + # Member Reference Number (Required)
        "#{FormatStrings::F26TS % ctx.header_data[:processor_name].upcase}" + # Member Processor Name (Required)
        "#{FormatStrings::F10TS % ctx.header_data[:user_id].upcase}" + # User ID (Required)
        "#{BuildField.transform_date(Date.today)}" + # Reported Date (Required)
        Constants::FILLER # Filler (Required)
    end

    module Constants
      SEGMENT_TAG = "TUDF"
      TUDF_VERSION = "11"
      FILLER = "0000000000"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tufy-0.0.11 lib/tufy/build_header_segment.rb
tufy-0.0.10 lib/tufy/build_header_segment.rb
tufy-0.0.9 lib/tufy/build_header_segment.rb
tufy-0.0.8 lib/tufy/build_header_segment.rb
tufy-0.0.7 lib/tufy/build_header_segment.rb