Affecting values to a BSON ordered hash is working OK with string or symbol values, but the inspect is quite confusing (example from an IRB session) :
ree-1.8.7-2011.03 :001 > bson_hash = BSON::OrderedHash.new
=> {}
ree-1.8.7-2011.03 :002 > bson_hash['hello'] = 'bonjour'
=> "bonjour"
ree-1.8.7-2011.03 :003 > bson_hash[:hello] = 'salut'
=> "salut"
ree-1.8.7-2011.03 :004 > bson_hash
=>
I don't really know what would be the best way to do this, but as it is I find it confusing.