Module:Buffer: Difference between revisions
From Zoophilia Wiki
Jump to navigationJump to search
meta>Codehydro No edit summary |
meta>Codehydro No edit summary |
||
Line 12: | Line 12: | ||
__index = { | __index = { | ||
_ = function(self, v) | _ = function(self, v) | ||
local valid = getmetatable(self).check(v) | |||
if valid then | |||
table.insert(self, valid) | |||
end | |||
return self | return self | ||
end, | end, |
Revision as of 03:03, 30 January 2015
Documentation for this module may be created at Module:Buffer/doc
return setmetatable({ check = function(v) if v and v ~= true then if type(v) == 'table' then return getmetatable(v) and getmetatable(v).__tostring and tostring(v) or table.concat(v) end return v--i.e. numbers or strings end end, __index = { _ = function(self, v) local valid = getmetatable(self).check(v) if valid then table.insert(self, valid) end return self end, _in = function(self, v) return setmetatable({ parent = self, _out = function(child, v2, outs) local parent = child.parent:_(child(v2)) if outs and outs > 0 then repeat child = parent parent = parent.parent outs = parent and parent:_(child()) and (outs - 1) or 0 until outs == 0 end return parent or child end, getmetatable(self).check(v) }, getmetatable(self)) end }, __call = function(t, i) return table.concat(t, i) end }, {__call = function(self, v) return setmetatable({self.check(v)}, self) end })