From a9ba8c62fd99611bd12e0696d68f870e1c36000d Mon Sep 17 00:00:00 2001 From: Jim Menard Date: Fri, 9 Jan 2009 13:54:12 -0500 Subject: [PATCH] Added OrderedHash#inspect which preserves key order --- lib/mongo/util/ordered_hash.rb | 6 ++++++ tests/test_ordered_hash.rb | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/lib/mongo/util/ordered_hash.rb b/lib/mongo/util/ordered_hash.rb index 568d7e5..209f4e5 100644 --- a/lib/mongo/util/ordered_hash.rb +++ b/lib/mongo/util/ordered_hash.rb @@ -51,4 +51,10 @@ class OrderedHash < Hash super(other) end + def inspect + str = '{' + str << @ordered_keys.collect { |k| "\"#{k}\"=>#{self.[](k).inspect}" }.join(", ") + str << '}' + end + end diff --git a/tests/test_ordered_hash.rb b/tests/test_ordered_hash.rb index 3b6b7d5..60ea830 100644 --- a/tests/test_ordered_hash.rb +++ b/tests/test_ordered_hash.rb @@ -79,4 +79,8 @@ class OrderedHashTest < Test::Unit::TestCase assert_equal ['crab', 'apple', 3, 'foo'], @oh.values end + def test_inspect_retains_order + assert_equal '{"c"=>1, "a"=>2, "z"=>3}', @oh.inspect + end + end