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