Comparison

util/stanza.lua @ 12724:5b5b428d67e2 0.12

util.stanza: Return nil instead of nothing (fix test with luassert >=1.9) Due to a change in luassert, a dependency luassert of the Busted test framework, returning nothing is no longer treated as not falsy.
author Kim Alvefur <zash@zash.se>
date Thu, 15 Sep 2022 11:05:21 +0200
parent 12140:1a4c61253932
child 12725:12ced5db29b2
child 12799:3784a8ce0596
comparison
equal deleted inserted replaced
12679:7d4a95ba9b6c 12724:5b5b428d67e2
162 or child.attr.xmlns == xmlns) then 162 or child.attr.xmlns == xmlns) then
163 163
164 return child; 164 return child;
165 end 165 end
166 end 166 end
167 return nil;
167 end 168 end
168 169
169 function stanza_mt:get_child_text(name, xmlns) 170 function stanza_mt:get_child_text(name, xmlns)
170 local tag = self:get_child(name, xmlns); 171 local tag = self:get_child(name, xmlns);
171 if tag then 172 if tag then
176 177
177 function stanza_mt:child_with_name(name) 178 function stanza_mt:child_with_name(name)
178 for _, child in ipairs(self.tags) do 179 for _, child in ipairs(self.tags) do
179 if child.name == name then return child; end 180 if child.name == name then return child; end
180 end 181 end
182 return nil;
181 end 183 end
182 184
183 function stanza_mt:child_with_ns(ns) 185 function stanza_mt:child_with_ns(ns)
184 for _, child in ipairs(self.tags) do 186 for _, child in ipairs(self.tags) do
185 if child.attr.xmlns == ns then return child; end 187 if child.attr.xmlns == ns then return child; end
186 end 188 end
189 return nil;
187 end 190 end
188 191
189 function stanza_mt:get_child_with_attr(name, xmlns, attr_name, attr_value, normalize) 192 function stanza_mt:get_child_with_attr(name, xmlns, attr_name, attr_value, normalize)
190 for tag in self:childtags(name, xmlns) do 193 for tag in self:childtags(name, xmlns) do
191 if (normalize and normalize(tag.attr[attr_name]) or tag.attr[attr_name]) == attr_value then 194 if (normalize and normalize(tag.attr[attr_name]) or tag.attr[attr_name]) == attr_value then
192 return tag; 195 return tag;
193 end 196 end
194 end 197 end
198 return nil;
195 end 199 end
196 200
197 function stanza_mt:children() 201 function stanza_mt:children()
198 local i = 0; 202 local i = 0;
199 return function (a) 203 return function (a)
348 352
349 function stanza_mt.get_text(t) 353 function stanza_mt.get_text(t)
350 if #t.tags == 0 then 354 if #t.tags == 0 then
351 return t_concat(t); 355 return t_concat(t);
352 end 356 end
357 return nil;
353 end 358 end
354 359
355 function stanza_mt.get_error(stanza) 360 function stanza_mt.get_error(stanza)
356 local error_type, condition, text, extra_tag; 361 local error_type, condition, text, extra_tag;
357 362