On Sep 21, 2008, at 3:57 PM, Jason Lillywhite wrote:

> Thanks everyone!
>
> Is there a reason the hsh.inject method is not included in the Ruby
> documentation?


Sure it is.  In my Programming Ruby, 2 ed., on page 492 it say that  
Hash mixes in the Enumerable module and lists inject as one of the  
methods.  Enumerable#inject itself is documented on page 456.

Depending on where/how you're looking, it is!

$ ri Hash#inject
Nothing known about Hash#inject

$ fri Hash#inject
------------------------------------------------------ Enumerable#inject
      enum.inject(initial) {| memo, obj | block }  => obj
      enum.inject          {| memo, obj | block }  => obj
------------------------------------------------------------------------
      Combines the elements of enum by applying the block to an
      accumulator value (memo) and each element in turn. At each step,
      memo is set to the value returned by the block. The first form
      lets you supply an initial value for memo. The second form uses
      the first element of the collection as a the initial value (and
      skips that element while iterating).

         # Sum some numbers
         (5..10).inject {|sum, n| sum + n }              #=> 45
         # Multiply some numbers
         (5..10).inject(1) {|product, n| product * n }   #=> 151200

         # find the longest word
         longest = %w{ cat sheep bear }.inject do |memo,word|
            memo.length > word.length ? memo : word
         end
         longest                                         #=> "sheep"

         # find the length of the longest word
         longest = %w{ cat sheep bear }.inject(0) do |memo,word|
            memo >= word.length ? memo : word.length
         end
         longest                                         #=> 5



What leads you to think that it isn't documented?

-Rob

Rob Biedenharn		http://agileconsultingllc.com
Rob / AgileConsultingLLC.com