scansion/objects/client.lua

changeset 44
0dab1dc183c1
parent 34
946c7d13faac
child 46
d711bf1e9979
equal deleted inserted replaced
43:b37504fa3031 44:0dab1dc183c1
9 9
10 local function fill_vars(script, stanza) 10 local function fill_vars(script, stanza)
11 for k, v in pairs(stanza.attr) do 11 for k, v in pairs(stanza.attr) do
12 local expr = v:match("^%$%{(.+)%}$"); 12 local expr = v:match("^%$%{(.+)%}$");
13 if expr then 13 if expr then
14 local name, value_name = expr:match("^(.-)'s (.+)$"); 14 local name, value_name = expr:match("^(.+)'s (.+)$");
15 assert(name, "Unable to parse expression: "..expr); 15 assert(name, "Unable to parse expression: "..expr);
16 local key = value_name:lower():gsub(" ", "_"); 16 local key = value_name:lower():gsub(" ", "_");
17 assert(script.objects[name], "Unknown object called "..name); 17 assert(script.objects[name], "Unknown object called "..name);
18 local value = script.objects[name][key]; 18 local value = script.objects[name][key];
19 assert(value ~= nil, "Unknown attribute (of "..name.."): "..value_name); 19 assert(value ~= nil, "Unknown attribute (of "..name.."): "..value_name);

mercurial