]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/rm/rm_dummy_runner.rb
Factor out the description-message-building in the runners.
[mailshears.git] / lib / rm / rm_dummy_runner.rb
index 091d32881bb9940f5f72c5ff2f67c3ba0030010e..2b1f14d66af40e91514aad00fb21a0f6d87596d2 100644 (file)
@@ -1,17 +1,37 @@
 require 'common/runner'
 
+# Dummy implementation of a {RmRunner}. Its <tt>run()</tt> method will
+# tell you what would have been removed, but will not actually perform
+# the operation.
+#
 class RmDummyRunner
   include Runner
 
-  def run(plugin, *targets)
+
+  # Pretend to remove *targets*. Some "what if"
+  # information will be output to stdout.
+  #
+  # This dummy runner is not particularly useful on its own. About the
+  # only thing it does is let you know that the users/domains in
+  # *targets* do in fact exist (through their descriptions). It's used
+  # to good effect by {PruneDummyRunner}, though.
+  #
+  # @param cfg [Configuration] the configuration options to pass to
+  #   the *plugin* we're runnning.
+  #
+  # @param plugin [RmPlugin] plugin that will perform the move.
+  #
+  # @param targets [Array<User,Domain>] the users and domains to be
+  #   removed.
+  #
+  def run(cfg, plugin, *targets)
     targets.each do |target|
-      if target.include?('@') then
-        user_description = plugin.describe_account(target)
-        report(plugin, "Would remove user: #{user} (#{user_description})")
-      else
-        domain_description = plugin.describe_domain(target)
-        report(plugin, "Would remove domain: #{domain} (#{domain_description})")
-      end
+      target_description = plugin.describe(target)
+      msg =  "Would remove #{target.class.to_s().downcase()} "
+      msg += add_description(target, target_description)
+      msg += '.'
+
+      report(plugin, msg)
     end
 
   end