module RmPlugin # # Plugins for the removal of accounts. # def RmPlugin.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 RmPlugin.includers return @includers end def delete_domain(domain) # Delete the given domain. Some plugins don't have a concept of # domains, so just delete all users with a username that looks # like it's in the given domain. usernames = list_domains_users([domain]) raise NonexistentDomainError.new(domain) if usernames.empty? usernames.each do |u| delete_account(u) end end def delete_account(account) # Delete the given account. raise NotImplementedError end end