Técnicas de programación de Ruby: manipulación de objetos simple pero no tan simple

Quiero crear un objeto, digamos un pastel.

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

Pero un pastel se puede dividir en 8 piezas, la mitad o solo un pastel entero. En aras de la discusión, me gustaría saber cómo podría dar a cada objeto Pie un precio por 1/8, 1/4 o por todo. Podría hacer esto haciendo:

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 

Pero ahora, si creara quince objetos Pie, y sacara al azar algunas piezas en algún lugar usando un método como

getPieceOfPie(pie_name)

¿Cómo podría generar el valor de todos los pasteles disponibles que son enteros y las piezas restantes? Eventualmente usando un método como:

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

Lo sé, soy un Ruby nuby. Gracias por sus respuestas, comentarios y ayuda!

Respuestas a la pregunta(4)

Su respuesta a la pregunta