Class: Bakong::Khqr::MerchantCode::MerchantInformationLanguageTemplate

Inherits:
TagLengthString
  • Object
show all
Defined in:
lib/bakong/khqr/merchant_code/merchant_information_language_template.rb

Overview

Tag “64”. Accepts a snake_case hash: { language_preference:, merchant_name_alternate_language:, merchant_city_alternate_language: }

Instance Attribute Summary collapse

Attributes inherited from TagLengthString

#length, #tag, #value

Instance Method Summary collapse

Methods inherited from TagLengthString

#to_s

Constructor Details

#initialize(tag, value) ⇒ MerchantInformationLanguageTemplate

Returns a new instance of MerchantInformationLanguageTemplate.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/bakong/khqr/merchant_code/merchant_information_language_template.rb', line 16

def initialize(tag, value)
  value ||= {}

  if value[:language_preference] && !value[:merchant_name_alternate_language]
    raise Error.from(ERROR_CODES[:MERCHANT_NAME_ALTERNATE_LANGUAGE_REQUIRED])
  end

  string = +""

  unless value[:merchant_name_alternate_language].nil?
    preference = LanguagePreference.new(EMV[:LANGUAGE_PREFERENCE], value[:language_preference])
    string << preference.to_s

    alt_name = MerchantNameAlternateLanguage.new(
      EMV[:MERCHANT_NAME_ALTERNATE_LANGUAGE],
      value[:merchant_name_alternate_language]
    )
    string << alt_name.to_s
  end

  unless value[:merchant_city_alternate_language].nil?
    alt_city = MerchantCityAlternateLanguage.new(
      EMV[:MERCHANT_CITY_ALTERNATE_LANGUAGE],
      value[:merchant_city_alternate_language]
    )
    string << alt_city.to_s
  end

  super(tag, string)
  @data = value
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



14
15
16
# File 'lib/bakong/khqr/merchant_code/merchant_information_language_template.rb', line 14

def data
  @data
end