X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=lib%2Fmailshears%2Fplugin.rb;fp=lib%2Fmailshears%2Fplugin.rb;h=2d0ded017fa8295ffb929d5bef0deea0e986a9b5;hp=0000000000000000000000000000000000000000;hb=314f5670531dfda9b3d708fce8b0161a098cf134;hpb=fd60e4e45d24c7efe5bc2710ae23f60bbb6b7be1 diff --git a/lib/mailshears/plugin.rb b/lib/mailshears/plugin.rb new file mode 100644 index 0000000..2d0ded0 --- /dev/null +++ b/lib/mailshears/plugin.rb @@ -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