如何在Ruby中实现注入?

我需要能够使用此调用:

h = x.inject({}) {|a, b| a[b.one] = b.two; a} 

其中x是一对Couple对象(这些对象只包含两个数字字段,一个和两个)。

我不确定如何在Couple中实现inject方法。

Couple定义一个#each方法,然后在其中包含Enumerable

 class Couple def each yield "a" yield "b" end include Enumerable end couple = Couple.new couple.inject("") { |str, obj| str + obj } # => "ab" 

http://www.ruby-doc.org/core-1.9.3/Enumerable.html