ibr_repo.rb
1# frozen_string_literal: true
2
3require "blather"
4require "lazy_object"
5require "value_semantics/monkey_patched"
6
7class IBRRepo
8 value_semantics do
9 iq_manager Anything(), default: LazyObject.new { IQ_MANAGER }
10 end
11
12 def registered?(jid, from:)
13 ibr = Blather::Stanza::Iq::IBR.new(:get, jid)
14 ibr.from = from
15
16 iq_manager.write(ibr).then do |result|
17 if result.respond_to?(:registered?) && result.registered?
18 result
19 else
20 false
21 end
22 end
23 end
24end