From 205253c98d46cd6b47844379db0c6f7de4619669 Mon Sep 17 00:00:00 2001 From: Insality Date: Sun, 7 Apr 2019 16:40:27 +0300 Subject: [PATCH] add factory.remove method --- druid/druid.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/druid/druid.lua b/druid/druid.lua index 23f63eb..872b632 100644 --- a/druid/druid.lua +++ b/druid/druid.lua @@ -81,6 +81,25 @@ local function create(module, factory) end +function _factory.remove(factory, instance) + for i = #factory, 1, -1 do + if factory[i] == instance then + table.remove(factory, i) + end + end + local interest = instance.interest + if interest then + for i, v in ipairs(interest) do + for j = #factory[v], 1, -1 do + if factory[v][j] == instance then + table.remove(factory[v], j) + end + end + end + end +end + + function _factory.new(factory, module, ...) local instance = create(module, factory)