]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/common/plugin.rb
Move the Runner selection into the plugin.
[mailshears.git] / lib / common / plugin.rb
index 633c8fd26d0c2f4bd467ff3d33aa3a48cc1a93fc..ed4ea004041a8986a151783707ffec1ff939815f 100644 (file)
@@ -14,6 +14,16 @@ module Plugin
     return @includers
   end
 
+  def runner()
+    # The Runner associated with this plugin.
+    raise NotImplementedError
+  end
+
+  def dummy_runner()
+    # The RummyRunner associated with this plugin.
+    raise NotImplementedError
+  end
+
   def describe_domain(domain)
     # Provide a "description" of the domain. This is output along
     # with the domain name and can be anything of use to the system
@@ -21,8 +31,8 @@ module Plugin
     raise NotImplementedError
   end
 
-  def describe_account(account)
-    # Provide a "description" of the account. This is output along
+  def describe_user(user)
+    # Provide a "description" of the user. This is output along
     # with the domain name and can be anything of use to the system
     # administrator.
     raise NotImplementedError
@@ -33,6 +43,14 @@ module Plugin
     raise NotImplementedError
   end
 
+  def user_exists(username)
+    # Does the given username exist for this plugin? We use a naive
+    # implementation here based on list_users() which is required to
+    # exist above. Plugins can override this with something fast.
+    users = list_users()
+    return users.include?(username)
+  end
+
   def list_domains_users(domains)
     # Get all usernames belonging to the given domains. If a username
     # ends in @example.com, it belongs to the domain example.com