Method: Archimate::DataModel::LangString#initialize

Defined in:
lib/archimate/data_model/lang_string.rb

#initialize(str = nil, lang_hash: {}, default_lang: nil) ⇒ LangString

Returns a new instance of LangString.

Parameters:

  • str (String, LangString) (defaults to: nil)

    optional shortcut to set define this LangString

  • lang_hash (Hash{Symbol => Object}) (defaults to: {})

    attributes

  • default_lang (String) (defaults to: nil)

    optional setting of the default language

Raises:

  • (Struct::Error)

    if the given attributes don’t conform #schema with given # constructor_type



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/archimate/data_model/lang_string.rb', line 35

def initialize(str = nil, lang_hash: {}, default_lang: nil)
  @lang_hash = lang_hash
  @default_lang = default_lang || lang_hash.keys.first
  @default_text = str || lang_hash.fetch(@default_lang, nil)
  case str
  when String
    @lang_hash[@default_lang] = @default_text = str.strip
  when LangString
    @lang_hash = str.lang_hash
    @default_lang = str.default_lang
    @default_text = str.default_text
  else
    @lang_hash[default_lang] = @default_text if @default_text
  end
end