| Class | Jabber::JID |
| In: |
lib/xmpp4r/jid.rb
|
| Parent: | Object |
| PATTERN | = | /^(?:([^@]*)@)??([^@\/]*)(?:\/(.*?))?$/ |
| USE_STRINGPREP | = | true |
| USE_STRINGPREP | = | false |
Create a new JID. If called as new(‘a@b/c’), parse the string and split (node, domain, resource)
# File lib/xmpp4r/jid.rb, line 26
26: def initialize(node = "", domain = nil, resource = nil)
27: @resource = resource
28: @domain = domain
29: @node = node
30: if @domain.nil? and @resource.nil? and @node
31: @node, @domain, @resource = @node.to_s.scan(PATTERN).first
32: end
33:
34: if USE_STRINGPREP
35: @node = IDN::Stringprep.nodeprep(@node) if @node
36: @domain = IDN::Stringprep.nameprep(@domain) if @domain
37: @resource = IDN::Stringprep.resourceprep(@resource) if @resource
38: else
39: @node.downcase! if @node
40: @domain.downcase! if @domain
41: end
42:
43: raise ArgumentError, 'Node too long' if (@node || '').length > 1023
44: raise ArgumentError, 'Domain too long' if (@domain || '').length > 1023
45: raise ArgumentError, 'Resource too long' if (@resource || '').length > 1023
46: end