Simplify prune plugins and fix array difference error.
[mailshears.git] / lib / prune / prune_plugin.rb
index e47a5e4aafbd6370fcf07aca76e30b8804fa34c0..1046f2d0b29c575a8a4ecfc8c51a54f1e609e6ad 100644 (file)
@@ -1,35 +1,35 @@
 require 'rm/rm_plugin'
 
 module PrunePlugin
-  include RmPlugin
-
   #
   # Plugins for the removal of leftover non-PostfixAdmin users,
   # i.e. after an user has been removed from the PostfixAdmin
   # database.
   #
+  include RmPlugin
+  extend Plugin::Run
 
-  def PrunePlugin.included(c)
-    # Callback, called whenever another class or module includes this
-    # one. The parameter given is the name of the class or module
-    # that included us.
-    @includers ||= []
-    @includers << c
+  def self.runner()
+    return PruneRunner
   end
 
-  def PrunePlugin.includers
-    return @includers
+  def self.dummy_runner
+    return PruneDummyRunner
   end
 
   def get_leftover_domains(db_domains)
     # Given a list of domains, determine which domains belonging to
     # this plugin are not contained in the given list.
-    raise NotImplementedError
+
+    # WARNING! Array difference doesn't work for some reason.
+    return list_domains().select{ |d| !db_domains.include?(d) }
   end
 
   def get_leftover_users(db_users)
     # Given a list of users, determine which users belonging to
     # this plugin are not contained in the given list.
-    raise NotImplementedError
+
+    # WARNING! Array difference doesn't work for some reason.
+    return list_users().select{ |u| !db_users.include?(u) }
   end
 end