From e0acccdd815ab3a104c51c429bb3ffb7a3309d50 Mon Sep 17 00:00:00 2001
From: "p.kosyh"
Date: Fri, 18 Jun 2010 09:16:07 +0000
Subject: [PATCH] better vars
---
stead/stead.lua | 1 +
stead/vars.lua | 17 ++++++++++++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/stead/stead.lua b/stead/stead.lua
index cded834..f5ace2a 100644
--- a/stead/stead.lua
+++ b/stead/stead.lua
@@ -2416,6 +2416,7 @@ function check_version(v)
end
if v >= "1.2.0" then
require ("goto")
+ require ("vars");
end
end
diff --git a/stead/vars.lua b/stead/vars.lua
index 2a14241..1a8ae4f 100644
--- a/stead/vars.lua
+++ b/stead/vars.lua
@@ -11,11 +11,11 @@ function (f, k, v, s, ...) -- k - key, v - value, s -- parent table
return f(k, v, s, unpack(arg))
end)
-obj = inherit(obj,
-function(v)
+function __vars_fill(v)
local k,o
- local vars = {}
if type(v.var) == 'table' then
+ local k,o
+ local vars = {}
for k,o in pairs(v.var) do
if tonumber(k) and type(o) == 'string' then
stead.table.insert(vars, o)
@@ -26,5 +26,16 @@ function(v)
end
v.var = vars;
end
+end
+
+obj = inherit(obj,
+function(v)
+ __vars_fill(v)
return v
end)
+
+init = hook(init,
+function (f, ...) -- k - key, v - value, s -- parent table
+ __vars_fill(_G)
+ return f(k, unpack(arg))
+end)