Técnicas de programação Ruby: manipulação de objetos simples, mas não tão simples

Eu quero criar um objeto, digamos uma torta.

class Pie 
  def initialize(name, flavor) 
    @name = name 
    @flavor = flavor 
  end 
end

Mas uma torta pode ser dividida em 8 pedaços, meio ou apenas uma torta inteira. Por uma questão de argumento, eu gostaria de saber como eu poderia dar a cada objeto Torta um preço por 1/8, 1/4 ou por todo. Eu poderia fazer isso fazendo:

class Pie 
  def initialize(name, flavor, price_all, price_half, price_piece) 
    @name = name 
    @flavor = flavor 
    @price_all = price_all
    @price_half = price_half
    @price_piece = price_piece
  end 
end 

Mas agora, se eu criar quinze objetos Torta e retirar algumas peças aleatoriamente em algum lugar, usando um método como

getPieceOfPie(pie_name)

Como eu seria capaz de gerar o valor de todas as tortas disponíveis que são inteiras e as peças restantes? Eventualmente, usando um método como:

   myCurrentInventoryHas(pie_name)
   # output: 2 whole strawberry pies and 7 pieces.

Eu sei, sou um Ruby Nuby. Obrigado por suas respostas, comentários e ajuda!

questionAnswers(4)

yourAnswerToTheQuestion