I have seen Ruby hashes in use, but I never needed them. Until today. I was testing edit community feature. I started with editing title.
I created class Community and method edit.
Then I tested editing other community properties. Sometimes I need to edit just one property, sometimes a few of them and sometimes all properties. The only way I could think of how to do it is to make all arguments of edit method optional.
But that caused ugly code when calling edit method if, for example, I only wanted to change security property.
I could make edit_security (and edit_title, edit_url...).
Better, but I wanted to try hashes, and it worked great.