run (Thor::Task)

    # File lib/thor/task.rb, line 23
        def run(obj, *params)
          raise NoMethodError, "the `#{meth}' task of #{obj.class} is private" if
            (obj.private_methods + obj.protected_methods).include?(meth)

          obj.send(meth, *params)
        rescue ArgumentError => e
          # backtrace sans anything in this file
          backtrace = e.backtrace.reject {|frame| frame =~ /^#{Regexp.escape(__FILE__)}/}
          # and sans anything that got us here
          backtrace -= caller
          raise e unless backtrace.empty?

          # okay, they really did call it wrong
          raise Error, "`#{meth}' was called incorrectly. Call as `#{formatted_usage}'"
        rescue NoMethodError => e
          begin
            raise e unless e.message =~ /^undefined method `#{meth}' for #{Regexp.escape(obj.inspect)}$/
          rescue
            raise e
          end
          raise Error, "The #{namespace false} namespace doesn't have a `#{meth}' task"
        end