> Actually, complete code:
> a1 = [{:name=>"File1.rar",
> :id=>"a3d80425a51a3a4cb2d7a3201439ef6cc3af5874"}, {:name=>"File2.avi",
> :id=>"58a658047ccb7333eb812da02dca9d84c1db2b41"}, {:name=>"File3.avi",
> :id=>"944f6a7c50a4a5cff0c28cb0f9158b16580b0310"}]
>
> a2 = [{:name=>"File2.avi", :other_attributes =>"(350 MiB) - 2.85%
> downloading at 0.00 B/s (UL at 0.00 B/s), stalled [error
> (tracker-warning) - Tracker hasn't responded yet.  Retrying...]"},
> {:name=>"File1.rar", :other_attributes=>" (26.6 MiB) - 100% seeding at
> 0.00 B/s [0.23]"}, {:name=>"File3.avi", :other_attributes=>"(35.5 MiB) -
> 0.86% downloading at 0.00 B/s (UL at 0.00 B/s), stalled"}]
>
> a2.each{|d| d.merge!(a1.select{|e| e[:name] == d[:name]}.first)}

Hey - that comes out really cleanly. Cool.