1# frozen_string_literal: true
2
3require "securerandom"
4
5module Blather
6 class JID
7 def with(node: self.node, domain: self.domain, resource: self.resource)
8 self.class.new(node, domain, resource)
9 end
10 end
11
12 module DSL
13 def say(to, msg, using=:chat)
14 client.write(Blather::Stanza::Message.new(to, msg, using).tap { |message|
15 message.id = SecureRandom.uuid
16 })
17 end
18 end
19
20 class Stanza
21 class Message
22 def addresses
23 find("ns:addresses", ns: ADDRESSES_NS)
24 .first
25 &.find("ns:address", ns: ADDRESSES_NS)
26 end
27 end
28 end
29end