Skip to content

Instantly share code, notes, and snippets.

@pablomayobre
Last active January 11, 2023 22:09
Show Gist options
  • Save pablomayobre/98cde5497110bbeea8b729a48780a241 to your computer and use it in GitHub Desktop.
Save pablomayobre/98cde5497110bbeea8b729a48780a241 to your computer and use it in GitHub Desktop.
Minimal class approach for Lua based on Tjakka5 code https://github.com/tjakka5/Babble/blob/master/babble/src/class.lua
local function new (self, ...)
local obj = setmetatable({}, self)
if self.initialize then self.initialize(obj, ...) end
return obj
end
local mt = { __call = function (self, ...)
return self:new(...)
end }
return function(name)
local class = {name = name, new = new}
class.class = class
class.__index = class
return setmetatable(class, mt)
end
@pablomayobre
Copy link
Author

Usage:

local class = require 'miniclass'

local MyClass = class('My Class')

function MyClass:initialize ()
   self.id = 0
end

function MyClass:setID (id)
  self.id = id
end


local Instance = MyClass:new()
Instance:setID(3)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment