Sha256: efd6eb355879e6db0b1e795da51d799b65f9ae3de66d2a9062252009d1ecf30b

Contents?: true

Size: 759 Bytes

Versions: 6

Compression:

Stored size: 759 Bytes

Contents

module Tufy
  class BuildEmailAddressSegment < BuildSegment
    expects :raw_data
    promises :transformed_data

    REQUIRED_KEYS = [
      :email_address,
    ]

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

    private

    def self.transform(ctx)
      raw_data = ctx[:raw_data]

      Constants::SEGMENT_TAG + # Segment Tag (Required)
        Constants::EMAIL_ADDRESS_TAG +
          FormatStrings::F2TS % raw_data[:email_address].size +
            raw_data[:email_address] # Email Address (Required)
    end

    module Constants
      # tags
      SEGMENT_TAG = "ID03I01"
      EMAIL_ADDRESS_TAG = "01"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
tufy-0.0.6 lib/tufy/build_email_address_segment.rb
tufy-0.0.5 lib/tufy/build_email_address_segment.rb
tufy-0.0.4 lib/tufy/build_email_address_segment.rb
tufy-0.0.3 lib/tufy/build_email_address_segment.rb
tufy-0.0.2 lib/tufy/build_email_address_segment.rb
tufy-0.0.1 lib/tufy/build_email_address_segment.rb