Line a strainer with some cheesecloth, add the ricotta and let drain for at least 1 hour.
Preheat the oven to 350 degrees F.
Bring a large pot of water to a boil; prepare an ice water bath. Blanch the broccoli rabe briefly in the boiling water, and then transfer to the water bath to stop the cooking. When cool, drain and coarsely chop. Set aside.
In a large bowl, whisk together the cheese, cream, milk and eggs; sprinkle with salt and pepper and mix. Add the bread cubes and let soak until softened, about 15 minutes.
While the bread is soaking, heat the oil in a 12-inch cast-iron pan over high heat until it begins to shimmer. Add the sausage meat and cook until golden brown, breaking it up into small pieces with a wooden spoon as it browns. Remove the sausage with a slotted spoon to a plate lined with paper towels.
Add the onions to the pan and cook until soft, about 4 minutes. Add the garlic and red pepper flakes and cook for 30 seconds. Add the broccoli rabe and toss to coat in the mixture. Return the sausage to the pan and cook for a few minutes. Add the butter and cook until it melts. Reduce the heat to medium.
Gently fold the bread pudding mixture into the pan and press the top to make it even. Add the ricotta by tablespoonfuls, forming little pockets on top. Continue cooking the frittata, without stirring, until the bottom is lightly browned, about 5 minutes; there should be a few bubbles around the edges. Transfer the pan to the oven and continue to cook until the center is firm to the touch, 20 to 25 minutes. Let rest for 10 minutes before serving.
Sprinkle with the parsley and serve hot or at room temperature with pasta sauce, if desired, and more grated cheese on the side.