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.
-
#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 |
# 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 |
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
70 71 72 |
# File 'lib/matrix_sdk/mxid.rb', line 70 def event? type == :event_id end |
#group? ⇒ Boolean
Check if the ID is of a group
58 59 60 |
# File 'lib/matrix_sdk/mxid.rb', line 58 def group? type == :group_id end |
#room? ⇒ Boolean
Check if the ID is of a room
64 65 66 |
# File 'lib/matrix_sdk/mxid.rb', line 64 def room? type == :room_id || type == :room_alias end |
#room_alias? ⇒ Boolean
Check if the ID is a room_alias
82 83 84 |
# File 'lib/matrix_sdk/mxid.rb', line 82 def room_alias? type == :room_alias end |
#room_id? ⇒ Boolean
Check if the ID is a room_id
76 77 78 |
# File 'lib/matrix_sdk/mxid.rb', line 76 def room_id? type == :room_id end |
#to_s ⇒ Object
20 21 22 23 |
# File 'lib/matrix_sdk/mxid.rb', line 20 def to_s port_s = port ? ':' + port.to_s : '' "#{sigil}#{localpart}#{domain ? ':' + domain + port_s : ''}" end |
#type ⇒ Symbol
Returns the type of the ID
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/matrix_sdk/mxid.rb', line 28 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
52 53 54 |
# File 'lib/matrix_sdk/mxid.rb', line 52 def user? type == :user_id end |
#valid? ⇒ Boolean
Checks if the ID is valid
46 47 48 |
# File 'lib/matrix_sdk/mxid.rb', line 46 def valid? !type.nil? end |