A past puzzle — fully playable. 4 attempts, hints on wrong guesses.
stdle-114.rb
1Point=Struct.new(:x,:y)
2p=Point.new(3,4)
3putsp.x
4putsp.y
5putsp.to_a.inspect
6putsp.members.inspect
Classes
Answer & explanation
Console output
3
4
[3, 4]
[:x, :y]
Why
`Struct.new(:x, :y)` generates a class with `x`, `y` accessors, `to_a` (returns values as array), and `members` (returns attribute names as symbols). This gives a lightweight value object with almost no boilerplate.