    # File lib/rbot/timer.rb, line 103
        def run(now = Time.now)
          raise 'inappropriate time to run()' unless self.next && self.next <= now
          self.next = nil
          begin
            @block.call(*@args)
          rescue Exception => e
            error "Timer action #{self.inspect}: block #{@block.inspect} failed!"
            error e.pretty_inspect
            debug e.backtrace.join("\n")
          end

          if @repeat && @period > 0
            self.next = now + @period
          end

          return self.next
        end