Avoid Putting Logic in Map Blocks The contents of a map block should probably be an instance method on each item.
Value Object Semantics in Ruby What is the correct behavior of hash, ==, eql? and equal? for value objects?