Best Practices

Sometimes optional arguments are quite useful. For example to inject a test dependency without messing up the API in the product code, or without introducing additional object state to denote the dependency that would make the code feel Java-ish instead of Lispish. Just count the number of places you can pass an optional block in the otherwise well designed Ruby standard library. 

I would suggest leaving this out as or rephrase it as "be careful with excessive use of ..."