Ruby syntax with classes, symbols, and metaprogramming
Object-oriented programming with Ruby:
Methods ending in ? express queries, while methods ending in ! commonly signal mutation or failure:
Collections, blocks, ranges, and chained method calls:
Dynamically defining predicate and bang methods: