Simplify prune plugins and fix array difference error.
[mailshears.git] / lib / prune / prune_plugin.rb
index 2776704a4135b5be897945a6683d4bb24dbe5d61..1046f2d0b29c575a8a4ecfc8c51a54f1e609e6ad 100644 (file)
@@ -1,35 +1,35 @@
 require 'rm/rm_plugin'
 
 module PrunePlugin
-  include RmPlugin
-
   #
-  # Plugins for the removal of leftover non-PostfixAdmin accounts,
-  # i.e. after an account has been removed from the PostfixAdmin
+  # 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_accounts(db_accounts)
-    # Given a list of accounts, determine which accounts belonging to
+  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