Sha256: c4b9473f3fa4810ac4e8582384c265b27b6750de83fc35df3b6652d8568ebcab

Contents?: true

Size: 696 Bytes

Versions: 5

Compression:

Stored size: 696 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 = transform(ctx).upcase
    end

    private

    def self.transform(ctx)
      ctx[:segment_tag] = Constants::SEGMENT_TAG

      result = with(ctx).reduce(
        Fields::BuildSegmentTagField,
        Fields::EmailAddress::BuildEmailAddressField,
      )

      result[:transformed_data]
    end

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tufy-0.0.13 lib/tufy/build_email_address_segment.rb
tufy-0.0.12 lib/tufy/build_email_address_segment.rb
tufy-0.0.11 lib/tufy/build_email_address_segment.rb
tufy-0.0.10 lib/tufy/build_email_address_segment.rb
tufy-0.0.9 lib/tufy/build_email_address_segment.rb