blather_ext.rb

 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