So good so far. But what if you are parsing something complicated and lose track of what people contains? Let’s see what happens if we accidentally assume that people just contains an array of strings of people’s names (even though it is still the hash).

Woah! Arrays containing keys and values? That’s not what we were expecting at all!

The danger in Ruby is that even though our block one had one argument, Ruby converted our data to fit our argument. While this can be a very powerful processing tool, it serves as a reminder that Ruby’s flexibility requires us, the programmers, to be hyper-aware of what our variables are and how we are using them - because Ruby will try its hardest to work regardless!

This is just one tiny example of how flexible Ruby can be. I’m sure as I get deeper into the language, there will be many more nuances like this one to talk about!