unread_size = thread.map { |m, *o| m && m.has_label?(:unread) ? 1 : 0 }.sum size = thread.size case when size == 1 : "" when unread_size == 0 : "(#{size})" else "(#{unread_size}/#{size})" end