imapfilter convenience wrapper

imaprules.lua 560B

12345678910111213141516171819202122232425262728
  1. local pkg = {}
  2. pkg.STATE = {}
  3. pkg.SET = function(loader, ruleset)
  4. pkg.STATE.loader = loader or function() return true end
  5. pkg.STATE.ruleset = ruleset or {}
  6. return true
  7. end
  8. pkg.RUN = function()
  9. local i
  10. for _, rule in ipairs(pkg.STATE.ruleset) do
  11. i = rule.loader()
  12. if not i then return end
  13. rule.action(i)
  14. end
  15. pkg.SET()
  16. end
  17. pkg.ADD = function(action, loader)
  18. local rule = {}
  19. rule.action = action
  20. rule.loader = loader or pkg.STATE.loader
  21. table.insert(pkg.STATE.ruleset, rule)
  22. end
  23. return pkg