Answering questions following reading
Methods to pass all tests.
Refactor factorial, conditional wasn't needed.
Strictly speaking, the initialize isn't needed to pass the tests.
Refactoring sum to make it more similar to product
Refactoring repeated code into private meta programming method
I have the metaprogramming method. Why not use it all over the place?
Using simpler version of inject
All those parenthesis are just unneeded punctuation