Ruby: Módulo, Mixins y Bloques confusos?

A continuación se muestra el código que intenté ejecutar desde elRuby Programming Librohttp://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html

¿Por qué noproduct Método de dar la salida correcta? Lo corri conirb test.rb. Y estoy corriendoRuby 1.9.3p194.

module Inject
  def inject(n)
    each do |value|
      n = yield(n, value)
    end
    n
  end

  def sum(initial = 0)
    inject(initial) { |n, value| n + value }
  end

  def product(initial = 1)
    inject(initial) { |n, value| n * value }
  end
end

class Array
  include Inject
end

[1, 2, 3, 4, 5].sum            ## 15
[1, 2, 3, 4, 5].product        ## [[1], [2], [3], [4], [5]]

Respuestas a la pregunta(5)

Su respuesta a la pregunta