Ruby Game of Life with matrices
Instead of magic numbers, extract them to either explaining variables or constants.
For example, in neighbor_counts, what are -1, 0, and 1?
People who are familiar with the GoL might know what you're trying to do, but assume you're passing this off to someone who is new to the GoL and doesn't know what these constants represent.