]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/mailshears/plugin.rb
Restructure the lib directory to avoid name collisions.
[mailshears.git] / lib / mailshears / plugin.rb
diff --git a/lib/mailshears/plugin.rb b/lib/mailshears/plugin.rb
new file mode 100644 (file)
index 0000000..2d0ded0
--- /dev/null
@@ -0,0 +1,52 @@
+# All plugins should include this module. It defines the basic
+# operations that all plugins are supposed to support.
+module Plugin
+
+  def Plugin.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    
+  end
+
+  def Plugin.includers
+    return @includers
+  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
+    # administrator.
+    raise NotImplementedError
+  end
+
+  def describe_account(account)
+    # Provide a "description" of the account. This is output along
+    # with the domain name and can be anything of use to the system
+    # administrator.
+    raise NotImplementedError
+  end
+
+  def delete_domain(domain)
+    # Delete the given domain.
+    raise NotImplementedError
+  end
+
+  def delete_account(account)
+    # Delete the given account.
+    raise NotImplementedError
+  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
+  end
+
+  def get_leftover_accounts(db_accounts)
+    # Given a list of accounts, determine which accounts belonging to this plugin
+    # are not contained in the given list.
+    raise NotImplementedError
+  end
+end