Class: MatrixSdk::MXID
Instance Attribute Summary collapse
-
#domain ⇒ Object
Returns the value of attribute domain.
-
#localpart ⇒ Object
Returns the value of attribute localpart.
-
#port ⇒ Object
Returns the value of attribute port.
-
#sigil ⇒ Object
Returns the value of attribute sigil.
Instance Method Summary collapse
-
#event? ⇒ Boolean
Check if the ID is of a event.
-
#group? ⇒ Boolean
Check if the ID is of a group.
-
#homeserver ⇒ String
Gets the homeserver part of the ID.
-
#homeserver_suffix ⇒ Object
Gets the homserver part of the ID as a suffix (‘:homeserver’).
-
#initialize(identifier) ⇒ MXID
constructor
A new instance of MXID.
-
#room? ⇒ Boolean
Check if the ID is of a room.
-
#room_alias? ⇒ Boolean
Check if the ID is a room_alias.
-
#room_id? ⇒ Boolean
Check if the ID is a room_id.
- #to_s ⇒ Object
-
#type ⇒ Symbol
Returns the type of the ID.
-
#user? ⇒ Boolean
Check if the ID is of a user.
-
#valid? ⇒ Boolean
Checks if the ID is valid.
Constructor Details
#initialize(identifier) ⇒ MXID
Returns a new instance of MXID.
8 9 10 11 12 13 14 15 16 17 18 19 |
# 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+/]+)$} # TODO: Community-as-a-Room / Profile-as-a-Room, in case they're going for room aliases @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 |
Instance Attribute Details
#domain ⇒ Object
Returns the value of attribute domain.
5 6 7 |
# File 'lib/matrix_sdk/mxid.rb', line 5 def domain @domain end |
#localpart ⇒ Object
Returns the value of attribute localpart.
5 6 7 |
# File 'lib/matrix_sdk/mxid.rb', line 5 def localpart @localpart end |
#port ⇒ Object
Returns the value of attribute port.
5 6 7 |
# File 'lib/matrix_sdk/mxid.rb', line 5 def port @port end |
#sigil ⇒ Object
Returns the value of attribute sigil.
5 6 7 |
# File 'lib/matrix_sdk/mxid.rb', line 5 def sigil @sigil end |
Instance Method Details
#event? ⇒ Boolean
Check if the ID is of a event
88 89 90 |
# File 'lib/matrix_sdk/mxid.rb', line 88 def event? type == :event_id end |
#group? ⇒ Boolean
Check if the ID is of a group
76 77 78 |
# File 'lib/matrix_sdk/mxid.rb', line 76 def group? type == :group_id end |
#homeserver ⇒ String
Gets the homeserver part of the ID
34 35 36 37 |
# File 'lib/matrix_sdk/mxid.rb', line 34 def homeserver port_s = port ? ":#{port}" : '' domain ? domain + port_s : '' end |
#homeserver_suffix ⇒ Object
Gets the homserver part of the ID as a suffix (‘:homeserver’)
40 41 42 |
# File 'lib/matrix_sdk/mxid.rb', line 40 def homeserver_suffix ":#{homeserver}" if domain end |
#room? ⇒ Boolean
Check if the ID is of a room
82 83 84 |
# File 'lib/matrix_sdk/mxid.rb', line 82 def room? type == :room_id || type == :room_alias end |
#room_alias? ⇒ Boolean
Check if the ID is a room_alias
100 101 102 |
# File 'lib/matrix_sdk/mxid.rb', line 100 def room_alias? type == :room_alias end |
#room_id? ⇒ Boolean
Check if the ID is a room_id
94 95 96 |
# File 'lib/matrix_sdk/mxid.rb', line 94 def room_id? type == :room_id end |
#to_s ⇒ Object
44 45 46 |
# File 'lib/matrix_sdk/mxid.rb', line 44 def to_s "#{sigil}#{localpart}#{homeserver_suffix}" end |
#type ⇒ Symbol
Returns the type of the ID
51 52 53 54 55 56 57 58 59 |
# File 'lib/matrix_sdk/mxid.rb', line 51 def type { '@' => :user_id, '!' => :room_id, '$' => :event_id, '+' => :group_id, '#' => :room_alias }[sigil] end |
#user? ⇒ Boolean
Check if the ID is of a user
70 71 72 |
# File 'lib/matrix_sdk/mxid.rb', line 70 def user? type == :user_id end |
#valid? ⇒ Boolean
Checks if the ID is valid
64 65 66 |
# File 'lib/matrix_sdk/mxid.rb', line 64 def valid? !type.nil? end |