def wait_until_synced(attr)
      attr = attr.to_sym
      waited = 0
      while true
        return if attribute_synced?(attr)
        waited += 1

        if waited % 100 == 0
          bot.loggers.warn "A synced attribute ('%s' for %s) has not been available for %d seconds, still waiting" % [attr, self.inspect, waited / 10]
          bot.loggers.warn caller.map {|s| "  #{s}"}

          if waited / 10 >= 30
            bot.loggers.warn "  Giving up..."
            raise Exceptions::SyncedAttributeNotAvailable, "'%s' for %s" % [attr, self.inspect]
          end
        end
        sleep 0.1
      end
    end
def wait_until_synced(attr)
      attr = attr.to_sym
      waited = 0
      while true
        return if attribute_synced?(attr)
        waited += 1

        if waited % 100 == 0
          bot.loggers.warn "A synced attribute ('%s' for %s) has not been available for %d seconds, still waiting" % [attr, self.inspect, waited / 10]
          bot.loggers.warn caller.map {|s| "  #{s}"}

          if waited / 10 >= 30
            bot.loggers.warn "  Giving up..."
            raise Exceptions::SyncedAttributeNotAvailable, "'%s' for %s" % [attr, self.inspect]
          end
        end
        sleep 0.1
      end
    end
Blocks until the object is synced.

 @return [void]
 @api private