31 lines
786 B
Lua
31 lines
786 B
Lua
-- History variables in Lua 6/12/2020 db
|
|
local HistoryVariable = {
|
|
new = function(self)
|
|
return setmetatable({history={}},self)
|
|
end,
|
|
get = function(self)
|
|
return self.history[#self.history]
|
|
end,
|
|
set = function(self, value)
|
|
self.history[#self.history+1] = value
|
|
end,
|
|
undo = function(self)
|
|
self.history[#self.history] = nil
|
|
end,
|
|
}
|
|
HistoryVariable.__index = HistoryVariable
|
|
|
|
local hv = HistoryVariable:new()
|
|
print("defined:", hv)
|
|
print("value is:", hv:get())
|
|
--
|
|
hv:set(1); print("set() to:", hv:get())
|
|
hv:set(2); print("set() to:", hv:get())
|
|
hv:set(3); print("set() to:", hv:get())
|
|
--
|
|
print("history:", table.concat(hv.history,","))
|
|
--
|
|
hv:undo(); print("undo() to:", hv:get())
|
|
hv:undo(); print("undo() to:", hv:get())
|
|
hv:undo(); print("undo() to:", hv:get())
|