Можно ли так сверстать?
flexbox если ie10+
либо 
display: table > display: table-cell 
и, если память не изменяет, у фиолетового блока width: 100%
В дополнение к тому, что предложил Андрей Хохлов есть еще древний способ, которым такую хрень делали еще на шестых осликах.parent-block {
  display:inline-block;width:100%; /* или другой клирфикс*/
}
.gray-block {
  white-space: nowrap;
  float: right;
}
.purple-block {
  overflow: hidden;
}