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