Decouple ruler generation from ruler output