# Methods inherited by the various runner classes ({PruneRunner},
# {MvRunner}, {RmRunner}).
#
module Runner
# The main thing a runner does is run() . Each runner will
# actually take a different number of arguments, so their
# run() signatures will differ. This stub is only here to
# let you know that it needs to be implemented.
#
# @param args [Array] whatever arguments the real implementation
# would take.
#
def run(*args)
raise NotImplementedError
end
# When we're describing a user or domain, we often want to output
# some additional description of it. But then, sometimes that
# additional description is pointless, like when it's exactly the
# same as the username that we're already outputting. This function
# determines whether or not *desc* is pointless for *target*.
#
# @param target [User,Domain] the user or domain described by *desc*.
#
# @param desc [String] a string description of *target*.
#
# @return [Boolean] true if *desc* is a pointless description of
# *target* and false otherwise.
#
def pointless?(target, desc)
return (desc.nil? or desc.empty? or desc == target.to_s())
end
# If *desc* is not a pointless description of *target*, return the
# string representation of *target* followed by *desc* in
# parentheses. If *desc* is pointless, we return only the string
# representation of *target*
#
# @param target [User,Domain] the user or domain we want to describe
# as a string.
#
# @param desc [String] a string description of *target*.
#
# @return [String] the string representation of *target*, possibly
# followed by the non-pointless description *desc*.
#
def add_description(target, desc)
if pointless?(target, desc)
return target.to_s()
else
return target.to_s() + " (#{desc})"
end
end
# Report a message from the given *plugin*. All this does is prefix
# the message with the plugin name and then print it to stdout.
#
# @param plugin [Object] t plugin object that generated the message
# we're reporting.
#
# @param msg [String] the message to report.
#
def report(plugin, msg)
print "#{plugin.class.to_s()} - "
puts msg
end
end