Refactor number to use an array of methods

The number method now iterates through an array of method names. It has to
refer to them as symbols and then call them because otherwise the array
stores their results (which have no arguments so cause ArgumentErrors).