Remove dependency on util.iterators

Thu, 23 Mar 2023 15:30:32 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 23 Mar 2023 15:30:32 +0000
changeset 178
e547ddf8b64d
parent 177
3c19b67a1f0f
child 179
8a9bf558aead

Remove dependency on util.iterators

I mistakenly thought it was bundled with verse.

scansion/helpers.lua file | annotate | diff | comparison | revisions
scansion/ordered_serializer.lua file | annotate | diff | comparison | revisions
scansion/pretty.lua file | annotate | diff | comparison | revisions
--- a/scansion/helpers.lua	Thu Mar 23 15:16:00 2023 +0000
+++ b/scansion/helpers.lua	Thu Mar 23 15:30:32 2023 +0000
@@ -27,7 +27,22 @@
 	return stanza;
 end
 
+local function sorted_pairs(t, sort_func)
+	local keys = {};
+	for k in pairs(t) do table.insert(keys, k); end
+	table.sort(keys, sort_func);
+	local i = 0;
+	return function ()
+		i = i + 1;
+		local key = keys[i];
+		if key ~= nil then
+			return key, t[key];
+		end
+	end;
+end
+
 return {
 	filter_expression = filter_expression;
 	fill_vars = fill_vars;
+	sorted_pairs = sorted_pairs;
 };
--- a/scansion/ordered_serializer.lua	Thu Mar 23 15:16:00 2023 +0000
+++ b/scansion/ordered_serializer.lua	Thu Mar 23 15:30:32 2023 +0000
@@ -1,7 +1,7 @@
 local s_find, s_gsub, s_match = string.find, string.gsub, string.match;
 local t_concat, t_insert = table.concat, table.insert;
 
-local pairs = require "util.iterators".sorted_pairs;
+local pairs = require "scansion.helpers".sorted_pairs;
 
 local escape_table = { ["'"] = "&apos;", ["\""] = "&quot;", ["<"] = "&lt;", [">"] = "&gt;", ["&"] = "&amp;" };
 local function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end
--- a/scansion/pretty.lua	Thu Mar 23 15:16:00 2023 +0000
+++ b/scansion/pretty.lua	Thu Mar 23 15:30:32 2023 +0000
@@ -3,7 +3,7 @@
 local s_format, s_gsub = string.format, string.gsub;
 
 local unsorted_pairs = pairs;
-local sorted_pairs = require "util.iterators".sorted_pairs;
+local sorted_pairs = require "scansion.helpers".sorted_pairs;
 
 local escape_table = { ["'"] = "&apos;", ["\""] = "&quot;", ["<"] = "&lt;", [">"] = "&gt;", ["&"] = "&amp;" };
 local function xml_escape(str) return (s_gsub(str, "['&<>\"]", escape_table)); end

mercurial