hashes = [
{:foo=>2, :date=>'Sat, 01 Sep 2014'},
{:foo2=>2, :date=>'Sat, 02 Sep 2014'},
{:foo3=>3, :date=>'Sat, 01 Sep 2014'},
{:foo4=>4, :date=>'Sat, 03 Sep 2014'},
{:foo5=>5, :date=>'Sat, 02 Sep 2014'}
]
puts hashes.group_by{|h| h[:date] }.map{|_, hs| hs.reduce(:merge)}
aGFzaGVzID0gWwogIHs6Zm9vPT4yLCA6ZGF0ZT0+J1NhdCwgMDEgU2VwIDIwMTQnfSwKICB7OmZvbzI9PjIsIDpkYXRlPT4nU2F0LCAwMiBTZXAgMjAxNCd9LAogIHs6Zm9vMz0+MywgOmRhdGU9PidTYXQsIDAxIFNlcCAyMDE0J30sCiAgezpmb280PT40LCA6ZGF0ZT0+J1NhdCwgMDMgU2VwIDIwMTQnfSwKICB7OmZvbzU9PjUsIDpkYXRlPT4nU2F0LCAwMiBTZXAgMjAxNCd9Cl0KCnB1dHMgaGFzaGVzLmdyb3VwX2J5e3xofCBoWzpkYXRlXSB9Lm1hcHt8XywgaHN8IGhzLnJlZHVjZSg6bWVyZ2UpfQ==
{:foo=>2, :date=>"Sat, 01 Sep 2014", :foo3=>3}
{:foo2=>2, :date=>"Sat, 02 Sep 2014", :foo5=>5}
{:foo4=>4, :date=>"Sat, 03 Sep 2014"}