Preheat the oven to 350°. Beat the butter in a large bowl with a mixer at high speed for 30 seconds. Add the sugar, fresh ginger, and molasses, and beat 1 minute. Add the egg and vanilla; beat until combined.
Combine the flour and the next 6 ingredients (through baking soda) in a large bowl, and stir with a whisk. Stir in the cranberries and nuts (if using). Add the flour mixture and buttermilk alternately to the butter mixture (beginning and ending with the flour mixture). Stir until just combined.
Pour the batter into a 9 x 5-inch loaf pan coated with cooking spray. Bake for 1 hour and 15 minutes, or until a wooden pick inserted into the center comes out clean. Cool in the pan 15 minutes on a wire rack. Remove from the pan, and cool completely on the rack.