A method can accept an unlimited number of arguments by using the splat operator *. It takes in arguments and converts them to an array, so you'd then have to flatten, in case some arrays were passed in (giving you an array of arrays).

	def multiply(\*numbers)
		numbers.flatten.inject(:\*)
	end