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
93 94 95 |
# File 'lib/matrix_sdk/mxid.rb', line 93 def event? type == :event_id end |
#group? ⇒ Boolean
Check if the ID is of a group
81 82 83 |
# File 'lib/matrix_sdk/mxid.rb', line 81 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.to_s : '' 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
87 88 89 |
# File 'lib/matrix_sdk/mxid.rb', line 87 def room? type == :room_id || type == :room_alias end |
#room_alias? ⇒ Boolean
Check if the ID is a room_alias
105 106 107 |
# File 'lib/matrix_sdk/mxid.rb', line 105 def room_alias? type == :room_alias end |
#room_id? ⇒ Boolean
Check if the ID is a room_id
99 100 101 |
# File 'lib/matrix_sdk/mxid.rb', line 99 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 60 61 62 63 64 |
# File 'lib/matrix_sdk/mxid.rb', line 51 def type case sigil when '@' :user_id when '!' :room_id when '$' :event_id when '+' :group_id when '#' :room_alias end end |
#user? ⇒ Boolean
Check if the ID is of a user
75 76 77 |
# File 'lib/matrix_sdk/mxid.rb', line 75 def user? type == :user_id end |
#valid? ⇒ Boolean
Checks if the ID is valid
69 70 71 |
# File 'lib/matrix_sdk/mxid.rb', line 69 def valid? !type.nil? end |