module MyHashExtensions
  def in_groups_of(*args)
      to_a.in_groups_of(*args).inject([]) do |accum, group|
        accum << group.inject({}) {|acc, pair| pair.nil? ? acc : acc.merge(pair.first => pair.last)}
      end
    end
  end
end
Hash.class_eval do # jam this into Hash however you wish!
  include MyHashExtensions
end
Example usage:
{:a => 'b', :c => 'd', :e => 'f', :g => 'h', :i => 'j', :k => 'l', :m => 'n'}.in_groups_of(3)
gives...
[{:i=>"j", :e=>"f", :g=>"h"}, {:c=>"d", :a=>"b", :k=>"l"}, {:m=>"n"}]
I used this for Cassandra/Rails/Thrift experimentation today! Remember, the text buffer is your canvas. You are a software artist, whether you like it or not. Play with the code, and if someone doesn't like it, throat punch them.
