Method: MatrixSdk::MXID#initialize

Defined in:
lib/matrix_sdk/mxid.rb

#initialize(identifier) ⇒ MXID

Returns a new instance of MXID.

Parameters:

  • identifier (String)

    The Matrix ID string in the format of ‘&<localpart>:<domain>’ where ‘&’ is the sigil

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
17
18
# File 'lib/matrix_sdk/mxid.rb', line 8

def initialize(identifier)
  raise ArgumentError, 'Identifier must be a String' unless identifier.is_a? String
  raise ArgumentError, 'Identifier is too long' if identifier.size > 255
  raise ArgumentError, 'Identifier lacks required data' unless identifier =~ %r{^([@!$+#][^:]+:[^:]+(?::\d+)?)|(\$[A-Za-z0-9+/]+)$}

  @sigil = identifier[0]
  @localpart, @domain, @port = identifier[1..-1].split(':')
  @port = @port.to_i if @port

  raise ArgumentError, 'Identifier is not a valid MXID' unless valid?
end