All pastes #76102 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-07-01 01:46 UTC
rendered paste body
-- Adjust require() to handle both unix and windows file seperators
require("Ace2/AceLibrary/AceLibrary.lua")
require("Ace2/AceOO-2.0/AceOO-2.0.lua")

local AceOO = AceLibrary("AceOO-2.0")
local Class = AceOO.Class
local Mixin = AceOO.Mixin
local myMixin = Mixin { "Test" }

function myMixin:Test()
	return "Test-1"
end

AceLibrary:Register(myMixin, "myMixin", 1, myMixin.activate)
myMixin = nil

local myClass = Class("myMixin")

AceLibrary:Register(myClass, "myClass", 1)
myClass = nil

local instance = AceLibrary("myClass"):new()
assert(instance:Test() == "Test-1")

local myMixin = Mixin { "Test" }

function myMixin:Test()
	return "Test-2"
end

AceLibrary:Register(myMixin, "myMixin", 2, myMixin.activate)
assert(instance:Test() == "Test-2")

assert(AceLibrary("myClass"):new():Test() == "Test-2")