Topic 3
Topic 3
Ruby source files are converted directly from the English source tree.
Overview
Why this topic matters ๐ก
Enumerable is one of the most important Ruby capabilities for everyday programming. It encourages students to describe transformations and selections directly rather than managing indexes and mutable accumulators manually.
Learning outcomes ๐ฏ
By the end of this topic, students should be able to:
Assessment focus โ
Students should be able to justify the Enumerable method they choose, not only make the test pass.
Short Note
Many Ruby programmers feel the language becomes especially elegant when processing collections. Enumerable lets you name the kind of work directly:
That matters pedagogically because it shifts attention from "how do I loop?" to "what operation am I expressing?" This is a strong change in mindset for many Java developers.
Ruby beauty in this topic:
Ruby caution in this topic:
Reflection prompt:
Worked Examples
Example 1: Reporting totals ๐ก
Order and invoice reporting are excellent Ruby examples because they are common and data-heavy. Students can see immediately why collection methods feel natural.
orders . sum { |order| order [: amount ] } worked_examples.md ruby This reads more like a business rule than a loop.
Example 2: Grouping money by currency ๐ก
Finance and commerce code often groups values by a shared key.
invoices . each_with_object ({}) do |invoice , totals| key = invoice [: currency ] totals [ key ] || = 0 totals [ key ] += invoice [: amount ] end worked_examples.md ruby Why this is useful: