У меня возникли проблемы при использовании xmpp4r сделать регистрацию в полосе следуя SO нить здесь:xmpp4r и Iq.new_register для внутриполосной регистрации
XMPP transport to another protocol
Проблема сводится к тому, что я получаю ошибка NoMethodError Исключение для new_register, когда я запускаю следующий код:
require "xmpp4r"
require "xmpp4r/client"
require "xmpp4r/iq"
def in_band_reg
chat_name = 'testChatName'
password = 'pword'
reg = Jabber::Iq.new_register(chat_name, password)
end
NoMethodError Exception: undefined method `new_register' for Jabber::Iq:Class
в xmpp4r драгоценный камень в файле iq.rb я могу видеть, метод new_register определяется как:
def Iq.new_register(username=nil, password=nil)
...
end
но когда я исследую методы класса, я не могу увидеть метод new_register. И.Е.
Jabber::Iq.singleton_methods(false)
["new_authset", "new_rosterget", "new_vcard", "new_rosterset", "import", "new_authset_digest", "new_query", "add_elementclass", "new_browseget"]
Jabber::Iq.public_instance_methods(false)
["query=", "queryns", "set_type", "type", "typed_add", "type=", "query", "vcard"]
Jabber::Iq.respond_to?("new_register")
false
Любая идея, почему я не могу получить доступ к методу new_register в 'xmpp4r/iq'?
Это решение очень полезно для меня, но я не понимаю ваш результат, так что вы можете это объяснить? –