Sun, 13 Sep 2009 22:22:47 +0300
Improvements
module("handlers", package.seeall) require("handlers.render") require("handlers.copy") require("handlers.ignore") local available={ { pattern = "%.lg$", handler = handlers.render}, { pattern = "", handler = handlers.copy}, } function find(f) for _, h in ipairs(available) do if string.match(f, h.pattern) then return h.handler end end return handlers.ignore end local cached={} function choose(f, env) cached[f] = find(f) end -- load function phase1(f, env) return cached[f].phase1(f, env) end -- write function phase2(f, env) return cached[f].phase2(f, env) end