]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/rm/rm_dummy_runner.rb
Document everything with YARD and fix some bugs along the way.
[mailshears.git] / lib / rm / rm_dummy_runner.rb
index 477608f8e77318e535ef671eca0bb7a629a5d0ad..54a8969bcc6925d5c55590b0a537e2367a66846d 100644 (file)
@@ -1,17 +1,43 @@
 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_user(target)
-        report(plugin, "Would remove user: #{target} (#{user_description})")
-      else
-        domain_description = plugin.describe_domain(target)
-        report(plugin, "Would remove domain: #{target} (#{domain_description})")
+      target_description = plugin.describe(target)
+      msg =  "Would remove #{target.class.to_s().downcase()} #{target}"
+
+      # Only append the extra description if it's useful.
+      if not target_description.nil? and
+         not target_description.empty? and
+         not target_description == target.to_s() then
+        msg += " (#{target_description})"
       end
+      msg += '.'
+
+      report(plugin, msg)
     end
 
   end