]> gitweb.michael.orlitzky.com - mailshears.git/blobdiff - lib/mv/mv_dummy_runner.rb
Factor out the description-message-building in the runners.
[mailshears.git] / lib / mv / mv_dummy_runner.rb
index 662abff73e89d1b176a97b4cea8d780415eec3bf..f73066967d3f42d41e6c3921b48a0b960ce1de8c 100644 (file)
@@ -1,16 +1,45 @@
 require 'common/runner'
 
+# Dummy implementation of a {MvRunner}. Its <tt>run()</tt> method will
+# tell you what would have been moved, but will not actually perform
+# the operation.
+#
 class MvDummyRunner
   include Runner
 
-  def run(plugin, src, dst)
+  # Pretend to move *src* to *dst* with *plugin*. Some "what if"
+  # information will be output to stdout. This is useful to see if
+  # there would be (for example) a username collision at *dst* before
+  # attempting the move in earnest.
+  #
+  # @param cfg [Configuration] the configuration options to pass to
+  #   the *plugin* we're runnning.
+  #
+  # @param plugin [Class] plugin class that will perform the move.
+  #
+  # @param src [User] the source user to be moved.
+  #
+  # @param dst [User] the destination user, to which we will move *src*.
+  #
+  def run(cfg, plugin, src, dst)
 
     if src.is_a?(Domain) or dst.is_a?(Domain) then
       msg = 'only users can be moved'
       raise NotImplementedError.new(msg)
     end
 
-    puts "Would move user #{src.to_s()} to #{dst.to_s()}."
+    # Since we're not actually moving anything, the destination
+    # description is really only useful for seeing whether or not we'd
+    # be trying to move in on top of an existing account.
+    src_description = plugin.describe(src)
+    dst_description = plugin.describe(dst)
+
+    msg  = "Would move user "
+    msg += add_description(src, src_description)
+    msg += " to "
+    add_description(dst, dst_description)
+    msg += "."
+    report(plugin, msg)
   end
 
 end